dfs.namenode.servicerpc-address或dfs.namenode.rpc-address未配置。

11

我试图将Hadoop配置为一个名称节点和四个数据节点。我成功地在一台机器上配置了名称节点和作业跟踪器。但是在我要配置数据节点的机器上,我做了以下操作:

  • 我将hadoop-2.0.0-cdh4.1.2.tar.gzmr1-2.0.0-mr1-cdh4.1.2.tar.gz解压到一个文件夹中,并设置了主节点和从节点。
  • master文件中,我设置了配置为名称节点的机器的IP地址。
  • 在从节点机器上,我设置了我解压tar包的机器的IP地址。

当我尝试使用命令启动数据节点时:

hdfs datanode

我收到了这个错误:

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

我需要做什么?

3个回答

13
masters 文件名具有误导性,它应该包含 SecondaryNameNode 的地址,并由 NameNode 自己读取。DataNodes 与 masters 文件无关。您需要在 core-site.xml 配置文件中配置 fs.default.name
您看到的错误也具有误导性,它将您指向错误的配置参数。该错误信息的相关信息请参考 此处

6

以下步骤解决了我的问题:

  1. 将HADOOP_CONF_DIR导出为"$HADOOP_HOME/etc/hadoop"
  2. echo $HADOOP_CONF_DIR
  3. hdfs namenode -format
  4. hdfs getconf -namenodes
  5. start-dfs.sh

然后,Hadoop可以正常启动。


不得不创建 HADOOP_CONF_DIR,因为 Hadoop 没有从 core-site.xml 中读取配置。我创建了 HADOOP_HOME/conf/hadoop-env.sh 并在其中添加了所需的变量(如 HADOOP_CONF_DIR、HADOOP_HDFS_HOME 等)。 - CᴴᴀZ

1
在hdfs-site.xml中添加rpc-address属性到名称节点,将会起到以下作用。
<property>
<name>dfs.namenode.rpc-address</name>
<value>dnsname:port</value>
</property>

在core-site.xml文件中添加以下属性: fs.defaultFS dnsname:port
请注意保留HTML标签,不做任何解释。

这个答案帮了我很多,谢谢! - user3768495

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接