刚刚配置hadoop,namenode常开,但datanode但保留了错误。但不启动:
2014-05-04 10:43:33,970 WARNorg.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server:hadoop1/192.168.10.22:9000
2014-05-04 10:43:55,009 INFOorg.apache.hadoop.ipc.Client: Retrying connect to server:hadoop1/192.168.10.22:9000. Already tried 0 time(s); retry policy isRetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2014-05-04 10:43:56,012 INFOorg.apache.hadoop.ipc.Client: Retrying connect to server:hadoop1/192.168.10.22:9000. Already tried 1 time(s); retry policy isRetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
假设你已经检查了datanode以及namenode的连通性,ip都正确,可是仍然没法解决这个问题。那么能够接着往下看了。
事实上根本原因还是无法连接到192.168.10.22:9000 对应ip的对应port。
查看一下namenode的port坚挺情况:
[[email protected] sbin]$ netstat -an | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:37072 127.0.0.1:9000 TIME_WAIT
事实上问题就再这里。hadoop启动的时候仅仅监听了127.0.0.1一个port,而不是192.168.10.22:9000。这样的情况下,也就仅仅有本机才干联通127.0.0.1:9000了。
看来是ip解析的问题。看一下namenode的hosts文件(仅仅列出了重要部分):
127.0.0.1 hadoop1localhost.localdomainlocalhost
::1 localhost6.localdomain6 localhost6
事实上主要问题就在标红的部分,仅仅要将hadoop1去掉就可以。
重新启动hdfs后检查一下port监听情况:
[[email protected] network-scripts]# netstat -an | grep 9000
tcp 0 0 192.168.10.22:9000 0.0.0.0:* LISTEN
tcp 0 0 192.168.10.22:9000 192.168.10.24:51040 ESTABLISHED
tcp 0 0 192.168.10.22:41116 192.168.10.22:9000 TIME_WAIT
tcp 0 0 192.168.10.22:9000 192.168.10.23:46070 ESTABLISHED
改动后datanode它将能够正确连接namenode该。
版权声明:本文博主原创文章,博客,未经同意不得转载。