11

当我尝试启动 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 管理器。

4

13 回答 13

24

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

于 2015-12-08T15:46:52.173 回答
7

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

  • export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
  • echo $HADOOP_CONF_DIR
  • hdfs namenode -format
  • hdfs getconf -namenodes
  • ./start-dfs.sh
于 2016-03-02T20:36:58.530 回答
1

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

于 2015-04-21T00:07:02.553 回答
1

显然,您的 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

于 2017-01-25T03:39:06.560 回答
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

确保在数据节点上正确设置了替代项。

于 2014-06-04T01:08:15.347 回答
0

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

set HADOOP_HOME_WARN_SUPPRESS=1
于 2020-10-11T09:50:31.537 回答
0

在 core-site.xml 中配置完整的主机名,masters 和 slaves 为我解决了这个问题。

旧:node1(失败)

新:node1.krish.com(成功)

于 2017-07-29T07:09:22.883 回答
0

在我的情况下,我通过将 /etc/hosts 配置更改为小写来修复。

于 2017-12-28T09:38:24.470 回答
0

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

于 2018-12-17T11:37:25.243 回答
0

就我而言,我错误地将 HADOOP_CONF_DIR 设置为其他 Hadoop 安装。

添加到 hadoop-env.sh:

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/
于 2017-04-10T18:43:42.047 回答
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>
于 2018-06-13T15:24:23.350 回答
0

创建 dfs.name.dir 和 dfs.data.dir 目录并在 core-site.xml、masters 和 slaves 中配置完整的主机名解决了我的问题

于 2017-08-30T13:41:38.253 回答
0

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

当namenode不工作时
当namenode不工作时

格式化 HDFS 后 格式化 HDFS 后

于 2018-06-24T14:03:13.160 回答