0

我使用 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

默认允许 icmp 默认 0.0.0.0/0 icmp

默认允许内部默认 10.240.0.0/16 tcp:1-65535,udp:1-65535,icmp

默认允许 rdp 默认 0.0.0.0/0 tcp:3389

默认允许 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 命令,但仍然看到无法连接。

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

4

1 回答 1

1

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

您可以通过查询元数据 API 来获取主机的外部 IP http://169.254.169.254/0.1/meta-data/network。响应将是一个如下所示的 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 仪表板实例上的目标标记;如所写,您的规则将允许在该端口上访问当前项目中的所有实例。

于 2015-01-04T18:27:39.993 回答