4

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for...

 2 years ago
source link: http://www.lzhpo.com/article/134
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-xxxx

Hadoop分布式集群的NameNode无法与slave2的DataNode通讯/解析

2020-06-23 15:08:09,471 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-1842394229-192.168.56.200-1592938709654 (Datanode Uuid 79e1af66-6aa2-475b-aa39-0d5835668937) service to box-master/192.168.56.200:9000 Datanode denied communication with namenode because hostname cannot be resolved (ip=192.168.56.102, hostname=192.168.56.102): DatanodeRegistration(0.0.0.0:50010, datanodeUuid=79e1af66-6aa2-475b-aa39-0d5835668937, infoPort=50075, infoSecurePort=0, ipcPort=50020, storageInfo=lv=-57;cid=CID-3c90d514-c0ac-403e-963c-177cabddc9a1;nsid=161969045;c=1592938709654)

Hadoop完全分布式集群-slave2无法启动datanode.png

NameNode无法与box-slave2通讯:

Hadoop完全分布式集群-slave2无法启动datanode-1.png

但是box-slave2的DataNode是启动了的:

Hadoop完全分布式集群-slave2无法启动datanode-2.png

最主要的就是在这里:

service to box-master/192.168.56.200:9000 Datanode denied communication with namenode because hostname cannot be resolved (ip=192.168.56.102, hostname=192.168.56.102)

这个意思就是NameNode无法解析我box-slave2(192.168.56.102)节点的DataNode!

DataNode都已经启动了,而且slave2的DataNode也已经启动了!所以应该是slave2无法解析到,但是我能够ping通!无法解析,可能应该是DNS的问题....

解决办法1

我一开始配置了两个DNS,所以这可能就是最根本的原因!我将所有节点的DNS2都注释掉之后,就没问题了,NameNode也可以正常解析box-slave2!

DNS1=8.8.8.8#DNS2=114.114.114.114

Hadoop完全分布式集群-slave2无法启动datanode-解决办法1.png

可以看到NameNode也正常与box-slave2节点通讯:

Hadoop完全分布式集群-slave2无法启动datanode-解决办法1-1.png

解决办法2

修改hdfs-site.xml配置:

如果解决办法1对你没用的话,就可以试一下这个!

关闭hostname检查

    <!--     Add datanode ip/hostname into /etc/hosts. Or enable reverse DNS(Make sure you could get hostname via command: host ip). Or add following property in hdfs-site.xml:    -->    <property>        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>                           <value>false</value>    </property>
正文到此结束
所属分类:大数据技术

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK