2014-02-16 53 views
2

我已經在谷歌計算引擎上設置了兩個節點的hadoop實例。我有一個動態的外部IP地址是108.59.84.14。我也設置了合適的hadoop配置,以便使用標準的hadoop紗線端口,例如8088(ResourceManager Web UI的Web界面)。訪問網絡接口不可能

對於授權外部訪問我跑以下命令(包括Hadoop的東西標準端口):

gcutil addfirewall web --network=hadoop-access --allowed=tcp:8088,tcp:50060,tcp:50070,tcp:50075,tcp:50090,tcp:20000,tcp:20001 --project=<project> 

現在,已經開始的hadoop後和在檢查,一切都正常工作:

[email protected]:~$ jps 
8057 NameNode 
8451 ResourceManager 
8164 DataNode 
8544 NodeManager 
8306 SecondaryNameNode 
8835 Jps 

我想訪問Web界面。爲此,我打開Chrome瀏覽器並輸入108.59.84.14:port,其中端口例如爲8088.但是,沒有任何端口可用。我總是收到一條錯誤消息,指出該頁面不存在。

我在做什麼錯?

+2

你使用什麼圖像?我在CentOS上遇到過類似的問題:你也必須更改iptables規則。 –

+0

還值得仔細檢查一下,您添加了防火牆規則的網絡與此實例所在的網絡相同。您是否樂意分享有關實例的gcutil getinstance輸出? – Benson

回答

1

有幾種可能性;你可能想嘗試使用tcpdump工具來確定你遇到的這些情況。使用tcpdump時,請記住使用例如tcpdump限制到端口8088。 tcpdump -vv port 8088

  1. GCE防火牆阻止了流量。這可能是由於防火牆應用於錯誤的網絡(正如Benson所建議的)。你可以用tcpdump來確定這個;嘗試連接時,實例上不應顯示流量。

  2. 您的圖像可能有阻止流量的Linux防火牆。對於這種情況和以下情況,您應該看到請求數據包在8088上到達,然後是TCP RST(重置)或無響應流量。在沒有迴應的情況下,這幾乎肯定是Linux防火牆。

  3. hadoop軟件可能只能在本地主機上偵聽。在這種情況下,您將看到一個TCP RST,您可以通過運行netstat -lpn -A inet列出所有偵聽程序以及他們正在偵聽的地址,來區分這種情況和上述情況。