【问题标题】:hadoop datanode startup fail - Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configuredhadoop datanode 启动失败 - 配置不正确:namenode 地址 dfs.namenode.servicerpc-address 或 dfs.namenode.rpc-address 未配置
【发布时间】:2015-07-13 17:07:52
【问题描述】:

我正在尝试使用一个名称节点和两个数据节点(slave1 和 slave2)设置 Hadoop 集群,因此我从 Apache Hadoop 下载了 zip 文件并将其解压缩到名称节点和一个数据节点(slave1)中。

因此,我在 master/slave1 中进行了所有配置(格式化 namenode),并成功设置了 slave1 与 master,这意味着我可以提交作业并在管理 UI 中查看 datanode 实例。

所以我将整个hadoop安装压缩到slave1中并在slave2中解压缩并更改了tmp目录和环境变量(如JAVA_HOME)的一些属性值。我没有触及 core-site.xml 中的主 URL (fs.defaultFS)。

当我尝试在 slave2 中启动 datanode 时,出现此错误。

java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured

奇怪的是我没有在slave1中指定这些属性并且能够在slave1中启动datanode没有任何问题,但是即使所有配置都相同,它也会在slave2中抛出这个错误。

我找到了与此问题相关的这些链接,但它在我的环境中不起作用。

  1. javaioioexception-incorrect
  2. dfs-namenode-servicerpc-address-or-dfs-namenode-rpc-address-is-not-configured
  3. incorrect-configuration-namenode-address-dfs-namenode-rpc-address-is-not-config

我在 centos 上使用 hadoop 2.4.1 和 JDK1.7。

如果遇到此问题的人已经弄清楚并可以分享一些信息,那将非常有帮助。

谢谢。

【问题讨论】:

  • 尝试将您为master 节点修改的所有config 文件复制到slave1slave2 节点。重启 hadoop 服务。

标签: hadoop


【解决方案1】:

这些步骤为我解决了问题:

  1. 导出 HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
  2. 回显 $HADOOP_CONF_DIR
  3. hdfs 名称节点格式
  4. hdfs getconf -namenodes
  5. .start-dfs.sh

这样,Hadoop就可以正常启动了。

【讨论】:

    【解决方案2】:

    我遇到了和你一样的问题。

    当我使用命令 scp 将配置从 Master 复制到 Slave 时,该命令并没有真正替换您的文件。在我先删除整个 hadoop 文件夹并再次复制后,问题就解决了。

    我建议你在 Slave2 中再检查一次配置

    祝你好运。

    【讨论】:

      【解决方案3】:

      如果您的主机名包含字符“_”,例如。 “我的主机”将其更改为“我的主机” 不要忘记更改 core-site.xml 中的主机名。

      【讨论】:

        【解决方案4】:

        您只需将 core-site.xml 配置为:

        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://slave:9000</value>
        </property>
        

        表示配置dfs.namenode.rpc-address


        我遇到的一个错误经历。 与问题描述的错误消息相同。

        (属性名称拼写错误)

        <property>
        <name>fs.defautFS</name>
        <value>hdfs://slave:9000</value>
        </property>
        

        【讨论】:

          【解决方案5】:

          我也遇到了和你一样的问题。原因是: 我配置了hadoop-env.sh、hdfs-site.xml、core-site.xml、mapred-site.xml等错误文件。这些文件放在/usr/local/hadoop/etc/hadoop 目录中,而不是像以前的版本中的/usr/local/hadoop/conf。 另外,/usr/local/hadoop/etc/hadoop目录下还有mapred-site.xml.template之类的文件,所以,你得把这个文件复制到其他文件,像这个命令hduser@localhost:~$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

          我建议您按照本指南重新配置您的系统。 Install hadoop on single node . 从这里您可以在多节点安装时探索您的问题

          【讨论】:

            【解决方案6】:
            <configuration>
                <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/data/namenode</value>
                </property>
                <property>
                    <name>dfs.replication</name>
                    <value>1</value>
                </property>
                <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/data/datanode</value>
                </property>
            </configuration>
            

            然后您必须授予用户访问文件夹的权限。

            【讨论】:

            • 它不起作用。我什至为这些目录制作了 777 并关闭了所有防火墙。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-12-22
            • 1970-01-01
            • 2015-03-26
            • 1970-01-01
            • 2014-12-15
            • 2013-02-26
            • 2014-12-02
            相关资源
            最近更新 更多