欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop 中xsync集群分发脚本

程序员文章站 2024-02-25 16:34:21
...

1.配置免密登录

2.rsync 远程同步工具

rsync主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点,rsync只对差异文件做更新。但是scp是将所有内容都发送过去。

使用方法:

rsync    -av   $parentdir/$filename   [email protected]$host:$parentdir/$filename
命令   选项参数   要拷贝的文件路径/名称     目的用户@主机:目的路径/名称

-a  归档拷贝
-v	显示复制过程

3.配置xsync集群分发脚本

在usr/local/bin目录下面创建文件xsync文件,或者在/home/用户/bin下面创建xsync文件,内容是:

#! /bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo No Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================    $host    ====================
    #3. 递归遍历所有目录
    for file in [email protected]
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取全路径
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "source /etc/profile;mkdir -p $pdir"
            
			#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname [email protected]$host:$pdir
        else
            echo $file Does Not Exists!
        fi
    done
done

修改脚本的执行权限 chmod 777 xsync

脚本的使用形式:xsync /opt/temp 可以分发/opt/temp文件夹到集群中所有的目录。


zk的启动脚本:

#! /bin/bash
for host in hadoop102 hadoop103 hadoop104
do
	ssh $host "source /etc/profile;nohup zKserver.sh start > /dev/null 2>&1 &"
	echo"************ $host Zookeeper is Starting ************"
done

kafka启动脚本:

#! /bin/bash
for host in hadoop102 hadoop103 hadoop104
do
	ssh $host "source /etc/profile;nohup kafka-server-start.sh start /opt/kafka_2.11-1.0.0/config/server.properties > /dev/null 2>&1 &"
	echo"==========$host Kafka is Starting"
done

xcall.sh

#! /bin/bash

for i in hadoop102 hadoop103 hadoop104
do
        echo --------- $i ----------
        ssh $i "source /etc/profile; $*"
done