datanode無法連接到namenode
namenode在清空hadoop.tmp.dir和namenode.dir文件夾重新格式化后,datanode還是無法連接到namenode並報錯:
hdfs.server.datanode.DataNode: Problem connecting to server: ligfoo/192.168.80.11:9000
datanode無法連接到namenode提供的通訊地址,但是ip和端口都是配置正確的。
這時候應該查看一下namenode的端口是否正在監聽,namenode端口監聽狀況如下:
可以看到監聽的ip地址為127.0.0.1,而不是namenode的真實ip,所以對於datanode發送過來的報文(ip192.168.80.11)它並不會響應,所以就出現了配置沒有錯誤,但是datanode還是無法連接到namenode的情況。
下一步我們要做的就是修改/etc/hosts里ip和主機的映射情況
這里127.0.0.1對應的主機名正常情況下應該是locahost,
但是這次我安裝系統時設置了主機名,所以這里變成了ligfoo。
我們要把主機名ligfoo改成localhost,這樣namenode時就會使用core-site.xml中配置的主機名來監聽了。
另外一種做法是直接將127.0.0.1和::1的回環ip注銷,但是這樣做的話,使用localhost就不會得到響應。
現在再次使用start-dfs.sh啟動hadoop即可。