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

12

当我尝试启动一个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>

查看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管理器。


这个其他问题链接有用吗? - nelsonda
14个回答

0
在我的情况下,我通过更改/etc/hosts配置为小写来解决了问题。

0

我知道,最近回答这个问题。

应该检查以下内容以修复:

  1. 主节点能够通过名称ping通从节点,反之亦然;如果在配置中使用了主机名而不是IP地址。如果无法ping通,则应检查主节点和从节点上的/etc/hosts文件.. 在所有节点中添加所有节点的条目。
  2. 在对主节点进行所有配置更改后,在主节点上执行以下操作。*将<USER_>和<SLAVE_NODE>更改为实际值。

scp $HADOOP_HOME/etc/hadoop/* <USER_>@<SLAVE_NODE>:$HADOOP_HOME/etc/hadoop/


0
在 hadoop-env.cmd 中添加以下行:
set HADOOP_HOME_WARN_SUPPRESS=1

0
在我的情况下,我错误地将HADOOP_CONF_DIR设置为另一个Hadoop安装目录。
在hadoop-env.sh中添加:
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/

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