谷歌计算引擎为hadoop仪表板添加防火墙规则

时间:2015-01-04 09:49:15

标签: hadoop port firewall google-compute-engine gcloud

我使用bdutil安装了hadoop集群(而不是点击部署)。我无法访问locahost的职位跟踪页面:50030 / jobtracker.jsp(https://cloud.google.com/hadoop/running-a-mapreduce-job

我使用lynx而不是从我的客户端浏览器本地检查它(所以localhost而不是外部ip)

我在bdutil的配置文件中的设置是

MASTER_UI_PORTS =(' 8088'' 50070'' 50030')

但在我执行防火墙规则列表后部署hadoop集群后,我得到了以下内容

名称网络SRC_RANGES规则SRC_TAGS TARGET_TAGS

default-allow-http默认值0.0.0.0/0 tcp:80,tcp:8080 http-server

default-allow-https默认值0.0.0.0/0 tcp:443 https-server

default-allow-icmp default 0.0.0.0/0 icmp

default-allow-internal默认值10.240.0.0/16 tcp:1-65535,udp:1-65535,icmp

default-allow-rdp默认值0.0.0.0/0 tcp:3389

default-allow-ssh默认值0.0.0.0/0 tcp:22

现在我没有在规则列表中看到端口50030。为什么这样?

所以我运行一个命令来添加它们(手动)

gcloud compute firewall-rules create allow-http --description"允许传入http。" --allow tcp:50030 --format json

现在它被添加了,我可以在firewall-rules list命令的输出中看到。

但是当我做lynx locahost时:50030 / jobtracker.jsp我无法连接。然后,我运行一个hadoop作业,以便有一些输出可供查看然后运行lynx命令,但仍然看不到连接。

有人可以告诉我在这个完整的过程中我哪里出错吗?

1 个答案:

答案 0 :(得分:1)

短暂的IP 是外部IP。短暂IP和静态IP之间的区别在于,可以将静态IP重新分配给另一个虚拟机实例,而在销毁实例时释放临时IP。可以通过Web UI或gcloud命令行工具将临时IP提升为静态IP。

您可以通过http://169.254.169.254/0.1/meta-data/network查询元数据API来获取主机的外部IP。响应将是一个看起来像这样的JSON文档(为清晰起见,漂亮打印):

{
   "networkInterface" : [
      {
         "network" : "projects/852299914697/networks/rabbit",
         "ip" : "10.129.14.59",
         "accessConfiguration" : [
            {
               "externalIp" : "107.178.223.11",
               "type" : "ONE_TO_ONE_NAT"
            }
         ]
      }
   ]
}

防火墙规则命令似乎合理,但您可能希望选择更具描述性的名称。如果我看到一条说 allow-http 的规则,我会认为它意味着端口80.您可能还想将其限制为放置在Hadoop仪表板实例上的目标标记;如上所述,您的规则将允许在该端口上访问当前项目中的所有实例。