hadoop datanode 启动失败 - 配置不正确:namenode 地址 dfs.namenode.servicerpc-address 或 dfs.namenode.rpc-address

Posted

技术标签:

【中文标题】hadoop datanode 启动失败 - 配置不正确:namenode 地址 dfs.namenode.servicerpc-address 或 dfs.namenode.rpc-address 未配置【英文标题】:hadoop datanode startup fail - Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured 【发布时间】: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中抛出这个错误。

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

    javaioioexception-incorrect dfs-namenode-servicerpc-address-or-dfs-namenode-rpc-address-is-not-configured incorrect-configuration-namenode-address-dfs-namenode-rpc-address-is-not-config

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

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

谢谢。

【问题讨论】:

尝试将您为master 节点修改的所有config 文件复制到slave1slave2 节点。重启 hadoop 服务。 【参考方案1】:

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

    导出 HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop 回显 $HADOOP_CONF_DIR hdfs 名称节点格式 hdfs getconf -namenodes .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 并关闭了所有防火墙。

以上是关于hadoop datanode 启动失败 - 配置不正确:namenode 地址 dfs.namenode.servicerpc-address 或 dfs.namenode.rpc-address 的主要内容,如果未能解决你的问题,请参考以下文章

hadoop动态添加datanode启动失败的经验

datanode启动失败

Hadoop启动datanode失败,clusterId有问题

hadoop中的namenode和datanode都启动了,输入jps为啥只有一个4018Jps

hadoop无法启动

hadoop:我在ubuntu配置hadoop,master可以启动slave的datanode,但是无法显示datanode