【问题标题】:How to sync Hadoop configuration files to multiple nodes?如何将 Hadoop 配置文件同步到多个节点?
【发布时间】:2013-08-26 07:55:09
【问题描述】:

我用来管理一个只有 3 台运行 Hadoop 的 Centos 机器的集群。所以scp足够我把配置文件复制到另外2台机器上。

但是,我必须为超过 10 台机器设置一个 Hadoop 集群。使用scp同步文件这么多次真的很沮丧。

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

node1
node2
...
node10

谢谢。

【问题讨论】:

    标签: hadoop ssh centos sync scp


    【解决方案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
    

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

    【讨论】:

      【解决方案2】:

      在 Hadoop 中使用 Zookeeper。

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 这在 Tom White 的“Hadoop:权威指南”的第 9 章中进行了高级讨论,对于 OP 来说值得一读。
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2021-12-06
          • 2016-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-10
          • 1970-01-01
          • 2023-02-10
          相关资源
          最近更新 更多