如何将Hadoop配置文件同步到多个节点?

时间:2013-08-23 09:52:48

标签: hadoop ssh centos sync scp

我想管理一个只运行Hadoop的3 Centos机器的集群。所以scp足以让我将配置文件复制到其他2台机器上。

但是,我必须将Hadoop集群设置为10台以上的计算机。使用scp来同步文件非常沮丧。

我想找到一个可以轻松将文件同步到所有计算机的工具。机器名称在配置文件中定义,例如:

node1
node2
...
node10

感谢。

4 个答案:

答案 0 :(得分:1)

将Zookeeper与Hadoop一起使用。

ZooKeeper是一个集中服务,用于维护配置信息,命名,提供分布式同步和提供组服务。

参考:http://wiki.apache.org/hadoop/ZooKeeper

答案 1 :(得分:1)

你有几种选择。一种方法是使用 rsync 等工具。 Hadoop控制脚本可以使用rsync将配置文件分发到群集的所有节点。或者,如果您需要更复杂的方法来实现这一目标,则可以使用Cloudera ManagerAmbari等工具。

答案 2 :(得分:1)

如果您不想使用Zookeeper,可以在$HADOOP_HOME/bin/hadoop中修改您的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

这就是我现在正在使用它并完成工作。

答案 3 :(得分:0)

如果您使用InfoSphere BigInsights,则会出现脚本syncconf.sh