【问题标题】:Incorrect configuration: namenode address dfs.namenode.rpc-address is not configured配置错误:namenode地址dfs.namenode.rpc-address未配置
【发布时间】:2014-05-18 08:19: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 管理器。

【问题讨论】:

标签: hadoop hdfs cloudera-cdh


【解决方案1】:

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

【讨论】:

  • 不知道为什么这被否决了。删除属性之间的空格确实解决了我的问题。我正在关注数字海洋指南。
  • 有同样的问题,(由于从the tutorial复制代码而没有清理)
  • 我遇到了类似的问题。我只是在 fs.default.name 的同一位置有无效信息,而不是空格。修复后一切正常。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      您的&lt;name&gt;fs.defaultFS&lt;/name&gt; 设置为&lt;value&gt;hdfs://namenode:8020&lt;/value&gt;,但您的机器主机名datanode1。所以您只需将namenode 更改为datanode1 即可。

      【讨论】:

      • 这个答案和 Hamdi Charef 的答案一起是我的解决方案。
      【解决方案5】:

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

      $ 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
      

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

      【讨论】:

        【解决方案6】:

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

        旧:node1(失败)

        新:node1.krish.com(成功)

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

              添加到 hadoop-env.sh:

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

              【讨论】:

                【解决方案10】:

                此类问题主要出现在以下任一文件中的属性值或名称中有空格- 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>
                

                【讨论】:

                • 请举个例子
                • 您应该添加您的答案,以便所有人都能得到它。我现在已经完成了。
                【解决方案11】:

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

                When namenode was not working

                After formatting HDFS

                【讨论】:

                  【解决方案12】:

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

                  【讨论】:

                    【解决方案13】:

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

                    set HADOOP_HOME_WARN_SUPPRESS=1
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-07-23
                      • 2020-01-19
                      • 1970-01-01
                      • 2017-12-17
                      • 2018-07-19
                      • 1970-01-01
                      相关资源
                      最近更新 更多