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
文件复制到slave1
和slave2
节点。重启 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失败,clusterId有问题
hadoop中的namenode和datanode都启动了,输入jps为啥只有一个4018Jps
hadoop:我在ubuntu配置hadoop,master可以启动slave的datanode,但是无法显示datanode