Hadoop從節點未連接
我一直在嘗試建立一個 Hadoop 集群;我設法讓它在偽分佈式模式下執行,我的一台機器在大約 30 秒內統計了托爾斯泰的《戰爭與和平》。
我現在正在嘗試向我的集群添加第二台機器;為了幫助進行設置,我創建了一個使用者組 Hadoop,該使用者組有權在 Hadoop 伺服器上啟動、停止和執行作業(儘管我只將配置文件編輯為 root)。我確保 hadoop 組的所有成員都可以使用他們的公鑰從主節點 ssh 到從節點。我使用 dpkg 安裝了 hadoop 1.0.0.3。我在主節點和從節點上正確編輯了主從文件,並將配置更改為指向正確的NameNode和JobTracker:
在 core-site.xml 中:
fs.default.name=hdfs://$MASTER:9000
在 mapred-site.xml 中:
mapred.job.tracker=$MASTER:9001
其中 $MASTER 是我的主機的主機名。
我的 NN、SNN 和 JobTracker 正在正確啟動;但是,我的從節點無法連接到我的主節點!這是我在 DataNode 日誌中看到的行為:
2012-05-25 09:36:23,390 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: $MASTER/10.23.95.197:9000. Already tried 0 time(s). 2012-05-25 09:36:23,390 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: $MASTER/10.23.95.197:9000. Already tried 1 time(s). ... ... connect to server: $MASTER/10.23.95.197:9000. Already tried 9 time(s). 2012-05-25 09:36:31,394 INFO org.apache.hadoop.ipc.RPC: Server at $MASTER/10.23.95.197:9000 not available yet, Zzzzz...
一而再,再而三。我在 TaskTracker 日誌中看到相同的內容,除了列出的埠號是 9001。lsof 告訴我正確的程序正在偵聽兩個埠。怎麼了???
$MASTER 的所有日誌都可以在http://pastebin.com/ZzyKBQVJ找到
謝謝; 如果您有任何疑問,請告訴我。
此問題通常不是由 Hadoop 配置中的問題引起的,而更多是由集群的網路配置引起的;就我而言,這是由這個問題引起的。如果您看到此行為,請
/etc/hosts
在查看 Hadoop 文件之前檢查您的路由等是否存在問題。
在 Rackspace 上設置 5 節點集群時,我遇到了類似的問題。我仔細檢查了我的
/etc/hosts
文件。問題實際上是防火牆。數據節點通過埠與主節點通信9000
。您將需要打開該埠進行通信。您還需要50010
在數據節點上打開埠,以便主節點進行通信以管理任務跟踪器。此外,主節點還應該
9001
為作業跟踪器通信打開埠。更新所有這些的 iptables。
在主節點上:
iptables -I INPUT -p tcp --dport 9000 -j ACCEPT iptables -I INPUT -p tcp --dport 9001 -j ACCEPT service iptables save service iptables reload
在每個數據節點/任務跟踪器上:
iptables -I INPUT -p tcp --dport 50010 -j ACCEPT service iptables save service iptables reload