0

我已经在谷歌计算引擎上部署了一个 hadoop 集群。然后我在 hadoop 集群的主节点上运行机器学习算法(Cloudera 的 Oryx)。该算法的输出通过 HTTP REST API 访问。因此,我需要通过 Web 浏览器或通过 REST 命令访问输出。但是,我无法解析主节点输出的地址,其格式为http://CLUSTER_NAME-mcPROJECT_NAME.internal:8091

我已允许 http 流量并允许访问网络上的端口 80 和 8091。但我无法解决给定的地址。请注意,此 http 地址不是主节点实例的 IP 地址。

我已经跟随示例访问计算实例的 IP 地址。但是,我找不到在 GCE 上访问 hadoop 集群的单个节点的示例,它遵循这种形式http://CLUSTER_NAME-mcPROJECT_NAME.internal:8091。任何帮助,将不胜感激。谢谢你。

4

1 回答 1

1

您看到这一点的原因是“HOSTNAME.c.PROJECT.internal”名称只能从同一实例本身的 GCE 网络中解析;这些域名不是全球可见的。因此,如果您要先通过 SSH 连接到您的主节点,然后再尝试,curl http://CLUSTER_NAME-m.c.PROJECT_NAME.internal:8091那么您应该会成功检索内容,而尝试从您的个人浏览器访问将无法将该主机名解析为任何 IP 地址。

所以不幸的是,您检索这些内容的最快方法确实是使用external IP address您的 GCE 实例。如果您已经在网络上打开了 8091 端口,只需使用gcutil getinstance CLUSTER_NAME-m并查找指定的条目external IP address;然后将其作为您的 URL 插入:http://[external ip address]:8091.

如果您使用 启动集群bdutil,访问集群的更复杂但更好的方法是运行bdutil socksproxy命令。这会打开一个动态端口转发 SSH 隧道到您的主节点作为 SOCKS5 代理,这样您就可以将浏览器配置为localhost:1080用作代理服务器,确保启用远程 DNS 解析,然后使用正常访问您的浏览器http://CLUSTER_NAME-m.c.PROJECT_NAME.internal:8091网址。

于 2014-10-29T20:36:43.567 回答