原创
Hadoop中NameNode无法与slave的DataNode通讯
温馨提示:
本文最后更新于 2020年06月24日,已超过 1,571 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
报错如下
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)
NameNode无法与box-slave2通讯:
但是box-slave2的DataNode是启动了的:
原因分析
最主要的就是在这里:
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
可以看到NameNode也正常与box-slave2节点通讯:
解决办法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>
- 本文标签: Hadoop
- 本文链接: http://www.lzhpo.com/article/134
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权