搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉!
编写一个名为xsync
的脚本文件:
作用: 将当前机器的文件,同步到集群所有机器的相同路径下!
hadoop102:/A/a , 执行脚本后,将此文件同步到集群中所有机器的 /A/a
用户在使用xsync时,只需要传入要同步的文件即可
xysnc a
不管a是一个相对路径还是绝对路径,都需要将a转换为绝对路径
!
文件的绝对路径=父路径+文件名
:
父路径: dirpath=$(cd dirname /home/atguigu/hi
; pwd -P)
文件名: filename=basename hi
pwd的 -P参数是为了避免出现软链接导致的路径问题,-P可以使软链接显示出真实的链接
核心命令:
for(())
do
rsync -rvlt path1
done
正式文件:
#!/bin/bash
#校验参数是否合法
if(($#==0))
then
echo 请输入要分发的文件!
exit;
fi
#获取分发文件的绝对路径
dirpath=$(cd `dirname $1`; pwd -P)
filename=`basename $1`
echo 要分发的文件的路径是:$dirpath/$filename
#循环执行rsync分发文件到集群的每条机器
for((i=101;i<=103;i++))
do
echo ---------------------hadoop$i---------------------
rsync -rvlt $dirpath/$filename username@hostname$i:$dirpath
done
最后别忘了把xcall文件放进家目录下的bin目录
,如果没有就新建一个bin目录,因为这目录是在全局环境变量
中,放进去后无论在哪个目录下都可以执行这个脚本文件!