1

我用来管理一个只有 3 台运行 Hadoop 的 Centos 机器的集群。因此scp,我将配置文件复制到其他 2 台机器就足够了。

但是,我必须为超过 10 台机器设置一个 Hadoop 集群。使用scp.

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

node1
node2
...
node10

谢谢。

4

4 回答 4

1

将 Zookeeper 与 Hadoop 一起使用。

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

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

于 2013-08-23T10:39:32.090 回答
1

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

于 2013-08-23T15:22:05.547 回答
1

如果您不想使用 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

这就是我现在正在使用的,它完成了这项工作。

于 2013-08-26T16:16:30.370 回答
0

如果您使用 InfoSphere BigInsights,那么有脚本 syncconf.sh

于 2015-09-07T19:58:49.380 回答