当我尝试启动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>
<?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经理。
答案 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
答案 11 :(得分:0)
检查您的“ / etc / hosts ”文件:
必须有如下一行:(如果没有,请添加)
namenode 127.0.0.1
将 namenode IP替换为127.0.01。
答案 12 :(得分:0)
在hadoop-env.cmd中添加以下行
+