Job tracking URL in Google Compute engine not working

时间:2015-07-28 16:41:58

标签: hadoop mapreduce google-compute-engine google-hadoop

I am using Google Compute Engine to run Mapreduce jobs on Hadoop (pretty much all default configs). While running the job I get a tracking URL of the form http://PROJECT_NAME:8088/proxy/application_X_Y/ but it fails to open. Did I forget to configure something?

3 个答案:

答案 0 :(得分:2)

详细说明使用&#34;外部IP地址&#34;的另一个答案中提到的Amal选项。在您的Google Compute Engine VM中,您可以通过运行gcloud compute instances describe --zone <your zone> <your master hostname>并查找natIP来获取外部IP地址。

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

如果您使用bdutil来启动群集,那么可以采用另一种更简单,更安全的方式;只需运行

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

使用动态端口转发打开SSH,以用作浏览器可以指向的SOCKS5代理。如果您在Linux或Mac上运行并安装了Chrome或Firefox,bdutil还应打印一个复制/粘贴命令,以启动预先配置为使用socks代理的全新隔离浏览器,以便您可以点击所有有用的链接。

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

答案 1 :(得分:1)

一次更正。您正在使用YARN。所以没有职业跟踪者。 Jobtracker出现在hadoop 1.x中。在YARN中,处理层成为通用框架,并且使用资源管理器和应用程序主机替换了jobtracker。您在问题中提到的UI是资源管理器。 对于您的问题,请尝试以下提示。

使用资源管理器实例的公共IP地址而不是PROJECT_NAME。

检查8088端口是否已打开,以便从外部访问它。

答案 2 :(得分:0)

另一种(更安全)的方法是使用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作业跟踪网址。

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