Google 计算引擎中的作业跟踪 URL 不工作

Job tracking URL in Google Compute engine not working

我正在使用 Google Compute Engine 来 运行 Hadoop 上的 Mapreduce 作业(几乎所有默认配置)。在 运行 处理作业时,我得到了 http://PROJECT_NAME:8088/proxy/application_X_Y/ 形式的跟踪 URL,但无法打开。我是不是忘记配置什么了?

更正一次。您正在使用纱线。所以没有jobtracker。 Jobtracker 存在于 hadoop 1.x 中。在 YARN 中,处理层变成了通用框架,jobtracker 被 Resource manager 和 application master 取代。您在问题中提到的 UI 是资源管理器的。 对于您的问题,请尝试以下提示。

使用资源管理器实例的 public ip 地址代替 PROJECT_NAME。

检查是否开放了8088端口供外部访问

要详细说明在使用 Google Compute Engine VM 的 "external ip address" 的其他答案中提到的选项 Amal,您可以通过 运行ning gcloud compute instances describe --zone <your zone> <your master hostname> 并寻找 natIP.

要打开端口 8088,您必须 set up a firewall rule 打开该端口,可能在您的 default Google Compute Engine 网络上。您需要在 --source-ranges 中指定一个 your.ip.address.here/32 地址,以将传入流量限制为仅拨入您的 VM 的本地计算机,否则 IP 源范围内的任何人都可以访问您的 Hadoop页数。

如果您曾使用 bdutil 启动您的集群,还有一种更简单、更安全的替代方法;只是 运行

bdutil <your flags used in deployment, like -e hadoop2, --prefix, etc.> socksproxy

打开带有动态端口转发的 SSH,用作您的浏览器可以指向的 SOCKS5 代理。如果您 运行 正在 Linux 或 Mac 上安装 Chrome 或 Firefox,bdutil 还应打印出 copy/paste 命令以启动新的隔离浏览器预先配置为使用 socks 代理,以便您可以单击所有有用的链接。

如果 bdutil 没有打印出浏览器命令或者您没有使用 bdutil,您也可以 运行 并使用 these instructions 配置您的 SSH socks 代理。基于 SSH 的 socks 代理比开放防火墙端口更安全,并且还允许 Hadoop 页面链接工作(否则您必须继续手动将主机名替换为外部 IP 地址)。

另一种(更安全)的方法是使用 gcloud compute 为您的部署创建一个 ssh 隧道,然后通过它启动 Chrome。

$ gcloud compute ssh clustername --zone=us-central1-a --ssh-flag="-D 1080" --ssh-flag="-N" --ssh-flag="-n"

您需要将 clustername 替换为您的部署名称,并在必要时更改 --zone。

从那里,您可以通过它启动 Chrome,然后到达 hadoop 作业跟踪 URL。

$ chrome   --proxy-server="socks5://localhost:1080" \
--host-resolver-rules="MAP * 0.0.0.0 , \ 
EXCLUDE localhost" --user-data-dir=/tmp/clustername