我在尝试启动数据节点时遇到了这个错误。从我读到的内容来看,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>
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>
我使用的是最新的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管理器。
13条答案
按热度按时间fiei3ece1#
这种类型的问题主要出现在以下任意一个文件中的属性值或名称中有空格-core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
只需确保在开始和结束的名称和值标记之间没有放置任何空格或(更改了行)。
代码:
ivqmmu1c2#
我也面临同样的问题,格式化hdfs解决了我的问题。如果有重要的元数据,不要格式化hdfs。
格式化hdfs的命令:
hdfs namenode -format
当namenode不工作时格式化hdfs后
pcrecxhr3#
检查“/etc/hosts”文件:
必须有下面这样一行:(如果没有,那么加上)
namenode 127.0.0.1
将127.0.01替换为namenode ip。sxpgvts34#
这些步骤为我解决了问题:
export HADOOP_CONF_DIR = $HADOOP_HOME/etc/hadoop
echo $HADOOP_CONF_DIRhdfs namenode -format
hdfs getconf -namenodes./start-dfs.sh
agxfikkp5#
检查$hadoop\u install/etc/hadoop dir下的core-site.xml。验证属性fs.default.name配置是否正确
zy1mlcev6#
我也有同样的问题。我通过检查数据节点上的环境找到了解决方案:
确保在数据节点上正确设置了备选方案。
jdgnovmf7#
在core-site.xml中配置完整的主机名,masters和slave为我解决了这个问题。
旧:node1(失败)
新增:node1.krish.com(succeed)
chhqkbe18#
我也面临同样的问题,最终发现fs.default.name value中有一个空格。截断空间解决了这个问题。上面的core-site.xml似乎没有空间,因此问题可能与我的不同。我的2美分
r1zhe5dt9#
在我的情况下,我将/etc/hosts config改为小写。
h9a6wy2h10#
在hadoop-env.cmd中添加下面的行
2admgd5911#
创建dfs.name.dir和dfs.data.dir目录并在core-site.xml、masters和slaves中配置完整主机名解决了我的问题
p4rjhz4m12#
显然,core-site.xml有配置错误。
你的
<name>fs.defaultFS</name>
设置为<value>hdfs://namenode:8020</value>
,但您的计算机主机名为datanode1
所以你只需要找点零钱namenode
至datanode1
会没事的。qv7cva1a13#
在我的例子中,我错误地将hadoop\u conf\u dir设置为其他hadoop安装。
添加到hadoop-env.sh: