配置错误:未配置namenode地址dfs.namenode.rpc-address

时间:2014-05-18 08:19:12

标签: hadoop hdfs cloudera-cdh

当我尝试启动DataNode时出现此错误。根据我的阅读,RPC参数仅用于HA配置,我没有设置(我认为)。

2014-05-18 18:05:00,589 INFO  [main] impl.MetricsSystemImpl (MetricsSystemImpl.java:shutdown(572)) - DataNode metrics system shutdown complete.
2014-05-18 18:05:00,589 INFO  [main] datanode.DataNode (DataNode.java:shutdown(1313)) -     Shutdown complete.
2014-05-18 18:05:00,614 FATAL [main] datanode.DataNode (DataNode.java:secureMain(1989)) - Exception in secureMain
java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
at org.apache.hadoop.hdfs.DFSUtil.getNNServiceRpcAddresses(DFSUtil.java:840)
at   org.apache.hadoop.hdfs.server.datanode.BlockPoolManager.refreshNamenodes(BlockPoolManager.java:151)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:745)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:278)

我的文件如下:

[root @ datanode1 conf.cluster] #cat core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
 <name>fs.defaultFS</name>
 <value>hdfs://namenode:8020</value>
</property>

</configuration>

cat hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>/hdfs/data</value>
</property>
<property>
 <name>dfs.permissions.superusergroup</name>
 <value>hadoop</value>
</property>
</configuration>

我正在使用最新的CDH5发行版。

Installed Packages
Name        : hadoop-hdfs-datanode
Arch        : x86_64
Version     : 2.3.0+cdh5.0.1+567
Release     : 1.cdh5.0.1.p0.46.el6

有关如何解决此问题的任何有用建议吗?

编辑:只需使用Cloudera经理。

13 个答案:

答案 0 :(得分:24)

我也遇到了同样的问题,最后发现fs.default.name值中有一个空格。截断空间修复了问题。上面的core-site.xml似乎没有空间,所以问题可能与我的不同。我的2美分

答案 1 :(得分:6)

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

  • export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
  • echo $HADOOP_CONF_DIR
  • hdfs namenode -format
  • hdfs getconf -namenodes
  • ./start-dfs.sh

答案 2 :(得分:2)

显然,你的core-site.xml有配置错误。

<property>
 <name>fs.defaultFS</name>
 <value>hdfs://namenode:8020</value>
</property>

您的<name>fs.defaultFS</name>设置为<value>hdfs://namenode:8020</value>,但您的计算机主机名datanode1。所以您只需将namenode更改为datanode1会好的。

答案 3 :(得分:1)

检查$ HADOOP_INSTALL / etc / hadoop目录下的core-site.xml。验证是否正确配置了属性fs.default.name

答案 4 :(得分:0)

我有完全相同的问题。我通过检查数据节点上的环境找到了解决方案:

$ sudo update-alternatives --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
$ sudo update-alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster

确保在数据节点上正确设置备选方案。

答案 5 :(得分:0)

在我的情况下,我错误地将HADOOP_CONF_DIR设置为其他Hadoop安装。

添加到hadoop-env.sh:

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/

答案 6 :(得分:0)

在core-site.xml中配置完整主机名,主服务器和从服务器为我解决了这个问题。

旧: node1 (失败)

新: node1.krish.com (成功)

答案 7 :(得分:0)

创建dfs.name.dir和dfs.data.dir目录并在core-site.xml,masters&amp;中配置完整主机名。奴隶解决了我的问题

答案 8 :(得分:0)

在我的情况下,我修改了/ etc / hosts配置为小写。

答案 9 :(得分:0)

这类问题主要出现在下列任何一个档案中,物业的价值或名称有空格─ core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml

确保您没有在开始和结束名称和值标签之间放置任何空格或(更改了行)。

代码:

 <property> 
<name>dfs.name.dir</name> <value>file:///home/hadoop/hadoop_tmp/hdfs/namenode</value> 
<final>true</final> 
</property>

答案 10 :(得分:0)

我遇到了同样的问题,格式化HDFS解决了我的问题。 如果您有重要的元数据,请不要格式化HDFS。
格式化HDFS的命令:hdfs namenode -format

When namenode was not working
When namenode was not working

After formatting HDFS After formatting HDFS

答案 11 :(得分:0)

检查您的“ / etc / hosts ”文件:
必须有如下一行:(如果没有,请添加)
namenode 127.0.0.1
namenode IP替换为127.0.01。

答案 12 :(得分:0)

在hadoop-env.cmd中添加以下行

+