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?
答案 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