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 并检查一切正常之后:

hadoop@namenode:~$ jps
8057 NameNode
8451 ResourceManager
8164 DataNode
8544 NodeManager
8306 SecondaryNameNode
8835 Jps

我想访问网络界面。为此,我打开 chrome 浏览器并输入108.59.84.14:port端口所在的位置,例如 8088。但是,没有一个端口工作。我总是收到一条错误消息,指出此页面不存在。

我究竟做错了什么?

4

1 回答 1

1

有几种可能性;您可能想尝试使用 tcpdump 工具来确定您遇到了哪些情况。使用 tcpdump 时,请记住使用 eg 限制到端口 8088 tcpdump -vv port 8088

  1. GCE 防火墙正在阻止流量。这可能是由于防火墙应用到了错误的网络(正如 Benson 建议的那样)。您可以使用 tcpdump 确定这一点;尝试连接时,实例上不应显示任何流量。

  2. 您的映像可能具有阻止流量的 Linux 防火墙。对于这种情况和以下情况,您应该看到请求数据包到达 8088,然后是 TCP RST(重置)或没有响应流量。在没有响应的情况下,这几乎可以肯定是 Linux 防火墙。

  3. hadoop 软件可能只在本地主机上监听。netstat -lpn -A inet在这种情况下,您将看到 TCP RST,您可以通过运行列出所有侦听程序以及它们正在侦听的地址来区分这种情况和上述情况。

于 2014-07-05T17:01:00.530 回答