2015-02-07 20 views
0

我有一個虛擬框中的Ubuntu服務器虛擬機(在Mac OSX中)。我通過docker配置了Hadoop集羣:1個主節點(172.17.0.3),2個從節點(172.17.0.4,172.17.0.6)。運行「./sbin/start-dfs.sh」下,Hadoop的主文件夾,我發現下面的錯誤數據節點機後:Hadoop從屬文件將IP視爲主機名?

Datanode denied communication with namenode because hostname cannot be 
resolved (ip=172.17.0.4, hostname=172.17.0.4): DatanodeRegistration(0.0.0.0, 
datanodeUuid=4c613e35-35b8-41c1-a027-28589e007e78, infoPort=50075, 
ipcPort=50020, storageInfo=lv=-55;cid=CID-9bac5643-1f9f-4bc0-abba- 
34dba4ddaff6;nsid=1748115706;c=0) 

由於碼頭工人不支持雙向名稱鏈接和進一步,我的碼頭工人的版本不允許編輯/ etc/hosts文件,所以我使用IP地址來設置名稱節點和從站。以下是我的奴隸檔案:

172.17.0.4 
172.17.0.6 

在谷歌和stackoverflow上搜索後,沒有解決方案適用於我的問題。不過,我猜Hadoop Namenode將172.17.0.4視爲「主機名」,所以它報告「主機名無法解析」,其中「主機名= 172.17.0.4」。 有何建議?

回答

0

最後我得到了一個解決方案,它證明了我的假設:

1.upgrade我的搬運工到1.4.1,從以下說明:https://askubuntu.com/questions/472412/how-do-i-upgrade-docker。主的

2.write IP =>主機名的映射和從站到/ etc/hosts中

3.使用主機名而不是IP地址Hadoop中從站文件。

4. 「運行./sbin/start-dfs.sh」

5.Done!