一、前言
今天搭建了三台虚拟机的集群,在集群中部分操作在三台虚拟机上的操作都一致,为了提高效率,就需要配置xsync实现集群分发。在网上也参考了好多资料,最终结合几篇博客配置传成功,遂将配置过程进行记录。
二、xsync集群分发
1.为每台主机设置hostname
使用命令
vi /etc/hostname
直接在控制台输入服务器名,例如我的三台是hadoop001, hadoop002, hadoop003。
2. 配置host文件
试用命令
vi /etc/hosts
其中,前面是每台服务器或虚拟机的ip,后面为设置的hostname, 将所有的集群名称都加入到/etc/hosts中。
3.下载 rsync 脚本
yum install -y rsync
跟下图一致说明安装成功。
4. 编写 xsync 脚本
使用下面命令在 /usr/local/bin 下创建 xsync 文件。
cd /usr/local/bin
vi xsync
在xsync中复制如下脚本
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
# 2.遍历集群所有机器
for host in hadoop001 hadoop002 hadoop003
do
echo ==================== $host ====================
# 3.遍历所有目录,挨个发送
for file in $@
do
# 4.判断文件是否存在
if [ -e $file ]
then
# 5.获取父目录
pdir=$(cd -P $(dirname $file); pwd)
# 6.获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
执行授权命令:
chmod +x /usr/local/bin/xsync
将 xsync 进行分发
xsync /usr/local/bin
注意:此时还没有进行免密登录,需要按照提示输入三台服务器的密码。再其他两台服务器的 /usr/local/bin 下已经可以看到xsyn文件了。
三、免密登录
1. 免密登录的原理
2.生成公钥和私钥
ssh-keygen -t rsa
一直敲回车,会生成两个文件,其中 /root/.ssh/id_rsa 是私钥,/root/.ssh/id_rsa.pub 是公钥。
3. 将公钥拷贝到要免密登录的目标机器上
lan@hadoop100 ,ssh :ssh-copy-id hadoop001
lan@hadoop100 ,ssh :ssh-copy-id hadoop002
lan@hadoop100 ,ssh :ssh-copy-id hadoop003
按照提示输入密码
至此,免密登录已经配置完成。
四、测试
在 hadoop001的目录 /usr/local/下创建文件夹 kaikai,再使用xsync进行集群分发
mkdir kaikai
xsync kaikai
再另外两台服务器的相同目录下有分发分kaikai文件夹。
至此,Linux中为集群配置xsync实现免密登录集群分发已完成。