我用来管理一个只有 3 台运行 Hadoop 的 Centos 机器的集群。因此scp
,我将配置文件复制到其他 2 台机器就足够了。
但是,我必须为超过 10 台机器设置一个 Hadoop 集群。使用scp
.
我想找到一个可以轻松将文件同步到所有机器的工具。并且机器名称在配置文件中定义,例如:
node1
node2
...
node10
谢谢。
将 Zookeeper 与 Hadoop 一起使用。
ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。
你有几个选择来做到这一点。一种方法是使用rsync之类的工具。Hadoop 控制脚本可以使用 rsync 将配置文件分发到集群的所有节点。或者,如果您需要更复杂的方法来实现这一目标,您可以使用Cloudera Manager或Ambari等工具。
如果您不想使用 Zookeeper,您可以修改您的 hadoop 脚本$HADOOP_HOME/bin/hadoop
并添加如下内容:
if [ "$COMMAND" == "deployConf" ]; then
for HOST in `cat $HADOOP_HOME/conf/slaves`
do
scp $HADOOP_HOME/conf/mapred-site.xml $HOST:$HADOOP_HOME/conf
scp $HADOOP_HOME/conf/core-site.xml $HOST:$HADOOP_HOME/conf
scp $HADOOP_HOME/conf/hdfs-site.xml $HOST:$HADOOP_HOME/conf
done
exit 0
fi
这就是我现在正在使用的,它完成了这项工作。
如果您使用 InfoSphere BigInsights,那么有脚本 syncconf.sh