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

aaa*_*210 10 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)
Run Code Online (Sandbox Code Playgroud)

我的文件看起来像:

[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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的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
Run Code Online (Sandbox Code Playgroud)

有关如何通过这个的任何有用的建议?

编辑:只需使用Cloudera经理.

小智 24

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

  • 有同样的问题,(通过复制[教程](http://www.tutorialspoint.com/hadoop/hadoop_enviornment_setup.htm)中的代码而不清理) (3认同)

Ham*_*ref 7

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

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


小智 0

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

$ 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
Run Code Online (Sandbox Code Playgroud)

确保数据节点上的替代方案设置正确。