部署hadoop分布式集群环境时出现两个datanode节点无法注册到namenode的现象,jps看datanode几个节点启动正常。只有和namenode相同服务器的datanode注册成功。
在主节点执行:hdfs dfsadmin -report ,显示Live Datanodes (1)
在其它datanode节点执行hdfs dfsadmin -report,显示如下
report: Call From server01/127.0.0.1 to server01:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
查看datanode的日志中出现
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool ID needed, but service not yet registered with NN。
netstat 查看namenode的8082端口处于监听状态。
网上找到的各种文章说的可能性全部排除,仍然不能解决这个问题。经过所有配置文件重新检查N次以后,查看namenode日志,最后注意到了这个“server01/127.0.0.1 ”反复出现。 为什么不是真IP而是本地回环地址呢? 查看/etc/hosts文件,发现对应server01的IP地址配置有两部分,一部分是
127.0.0.1 localhost
127.0.0.1 server01
另外下面还有
192.168.227.101 server01
192.168.227.102 server02
192.168.227.103 server03
在一个主机名有两个地址的情况下,默认的是127的IP,导致8020端口监听的是127.0.0.1,删除这一条配置后,重启启动start-all.sh, 奇迹出现了,8020端口监听的是真IP了,问题解决~
转载请注明:开发者驿站 » Hadoop分布式集群部署排错: failed on connection exception: java.net.ConnectException: 拒绝连接