集群環境為 CentOS 6.2,採用 2 Master、4 Slave 架構。在集群上運行 example.jar 測試通過,管理頁面與 jps 皆顯示正常。但在 Windows 7 下使用 Eclipse(安裝 CSDN 下載的插件)開發時,雖能連接集群並正常顯示 HDFS,運行 WordCount 卻報錯:
WARN - Failed to connect to /192.168.11.94:50010 for block, add to deadNodes and continue. java.net.ConnectException: Connection timed out
四個 Slave 均顯示通信超時。
在任務管理頁面(master:8088)發現無任務提交記錄,原來 MapReduce 任務實際是在本地運行,而非提交至 YARN 集群,因此無法與 Slave 節點通信。
在程式中顯式指定運行框架與 ResourceManager 地址:
conf.set("mapreduce.framework.name", "yarn");
conf.set("yarn.resourcemanager.address", "master2:8032");
設定後管理頁面顯示任務正常運行,通信超時錯誤消失。
雖解決通信問題,但隨後出現新錯誤,需進一步排查。