2014-02-16 34 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列出所有侦听程序以及他们正在侦听的地址,来区分这种情况和上述情况。