在Hadoop集群中,每次更新/etc/hadoop文件夹下的配置文件,都需要同时配置一样的内容到每一台节点上,虽然配置完一台可以通过scp命令拷贝到其他节点,但当节点过多时,该命令要重复好几遍,为了提高效率,可以通过一键执行脚本的方式,同步修改过的文件,具体步骤如下:
- 确保集群节点之间可以ssh免密登录。
- 编写hadoop配置文件同步脚本。
sudo vi sync_etc.sh
#!/bin/bash
##用于同步配置文件
##配置文件路径
HADOOP_ETC=/etc/hadoop
##需要同步的文件
ETC_FILES="core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml mapred-env.sh hadoop-env.sh"
##需要同步的主机名(可以如果没有hosts的主机名映射,可以填ip)
HOSTS="hadoop01 hadoop02"
OP_DATE=$(date +%Y%m%d_%H%M%S)
echo "配置文件开始同步"
for H in $HOSTS;do
echo "##Sycn for $H##"
for F in $ETC_FILES;do
echo "backup and scp..."
## 用户名自行修改
ssh hadoop@$H cp $HADOOP_ETC/$F $HADOOP_ETC/${F}_${OP_DATE}
scp $HADOOP_ETC/$F hadoop@$H:$HADOOP_ETC
done
done
-
脚本授权。
sudo chmod 777 sync_etc.sh
-
这样每次修改完hadoop配置文件,可以执行脚本一步同步了。
./sync_etc.sh
原文链接:link