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

n6lpvg4x  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(741)

我用它来管理一个只有3台运行hadoop的centos机器的集群。所以呢 scp 足够我把配置文件复制到另外两台机器上。
但是,我必须为10台以上的机器设置一个hadoop集群。它真的是沮丧的同步文件这么多次使用 scp .
我想找到一个工具,我可以很容易地同步文件到所有的机器。机器名在配置文件中定义,例如:

node1
node2
...
node10

谢谢。

wwwo4jvm

wwwo4jvm1#

在hadoop中使用zookeeper。
zookeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。
参考文献:http://wiki.apache.org/hadoop/zookeeper

qltillow

qltillow2#

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

这就是我现在所用的,它起作用了。

vawmfj5a

vawmfj5a3#

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

yb3bgrhw

yb3bgrhw4#

如果您使用infospherebiginsights,那么就有脚本syncconf.sh

相关问题