大家好,又见面了,我是你们的朋友全栈君。
1.配置免密登录
2.rsync 远程同步工具
rsync主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点,rsync只对差异文件做更新。但是scp是将所有内容都发送过去。
使用方法:
代码语言:javascript复制rsync -av $parentdir/$filename $user@hadoop102$host:$parentdir/$filename
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
-a 归档拷贝
-v 显示复制过程
3.配置xsync集群分发脚本
在usr/local/bin目录下面创建文件xsync文件,或者在/home/用户/bin下面创建xsync文件,内容是:
代码语言:javascript复制#! /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 $@
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 $USER@$host:$pdir
else
echo $file Does Not Exists!
fi
done
done
修改脚本的执行权限 chmod 777 xsync
脚本的使用形式:xsync /opt/temp 可以分发/opt/temp文件夹到集群中所有的目录。
zk的启动脚本:
代码语言:javascript复制#! /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启动脚本:
代码语言:javascript复制#! /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
代码语言:javascript复制#! /bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo --------- $i ----------
ssh $i "source /etc/profile; $*"
done
* 为获取传递进来的变量 @ 为获去传递进来变量的个数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142064.html原文链接:https://javaforall.cn