今天安裝了一個hadoop集群,因為已經在單個虛擬機上安裝成功,所以初期安裝相對順利。
初始環境如下:
通過Vmware Esxi服務器虛擬機出來四台機器,每台機器的網絡配置如下:
master:10.10.50.241
node1:10.10.50.242
node2:10.10.50.243
node3:10.10.50.244
本機筆記本電腦:10.10.50.239(模擬遠端訪問控制)。
問題描述:
Hadoop啟動之后,發現遇到一個奇怪的問題:
1.主機中配置好的hadoop啟動之后,在namenode所在的虛擬機中,通過瀏覽器訪問:http://127.0.0.1:8088 或者http://master:8088 能夠訪問控制台。通過http://10.10.50.241:8088訪問控制台,顯示不能連接。
2.在筆記本上連接:http://10.10.50.241:8088,顯示不能連接。
3.通過查找日志:發現datanode的日志中提示:訪問10.10.50.241:8020不能訪問.
排查步驟:
1.首先,各個虛擬機和客戶端之前都能ping通,虛擬機都能上外網,說明網絡沒有問題。
2.各個虛擬機自己的防火牆已經關閉。
3.通過筆記本telnet遠端機器:發現 telnet 10.10.50.241 22可以,telnet 10.10.50.241 8088不行。懷疑是不是需要關閉Vmware Esxi的防火牆呢?
查找在Esxi中關閉防火牆的方法:
運行:#esxcli network firewall set –enabled false
參考:
http://2790010.blog.51cto.com/2780010/1154143
執行完成之后,重啟Esxi,發現不起作用。
3.那是不是端口有問題,通過命令#netstat –tpnl
發現監聽都配置在:127.0.0.1 結合可以通過可以通過:127.0.0.1:8088可以訪問考慮,是不是這個地址改成10.10.50.241就可以了?
因為所有hadoop內部配置的都是hostname,所以有兩種方法:
1.將hadoop中所有的hostname改成IP的方式。
2.修改linux的設置,將hostname映射地址改為:10.10.50.241
研究第二種方式,排查發現:hostname –i 命令顯示的IP為:
#hostname –i
127.0.0.1 10.10.50.241
所以,在master中,實驗將/etc/hosts中的127.0.0.1 master去掉,運行發現:
發現部分端口已經改正,還有部分端口沒有改正過來。
將各個數據節點中/etc/hosts中的127.0.0.1 node[x]去掉,重新啟動hadoop發現:
此時:通過在筆記本上訪問:http://10.10.50.241:8088已經可以,問題解決。
另外一個問題:
通過訪問:http://10.10.50.241:50070/dfshealth.jsp 中選擇Browse the filesystem選項時發現找不到頁面,觀察URL,http://node3:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/&nnaddr=10.10.50.241:8020
因此:在筆記本上的hosts目錄中添加hadoop集群的相關host配置,問題解決。
出處: http://www.cnblogs.com/sdjnzqr/
版權:本文版權歸作者和博客園共有
轉載:歡迎轉載,但未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任