我使用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命令,但仍然看不到连接。
有人可以告诉我在这个完整的过程中我哪里出错吗?
答案 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仪表板实例上的目标标记;如上所述,您的规则将允许在该端口上访问当前项目中的所有实例。