我已经为我的主/从节点打开了EC2安全组,因此我可以从本地浏览器访问作业跟踪器界面。我使用http://MASTER-IP:9100
连接到它。
在我尝试从任务详细信息中访问任务跟踪器日志之前,一切正常 - http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:9100/taskdetails.jsp?tipid=task_201212181113_0001_m_000000
我到达的链接是内部EC2 IP地址,因此我无法从本地计算机访问它们(链接是http://10.116.xxx.xx:9103/tasklog?attemptid=attempt_201212181113_0001_m_000000_0&all=true
)
有没有办法改变EMR,以便这些链接包含任务跟踪器的公共IP?
谢谢!
答案 0 :(得分:4)
你可以很容易地做到ssh
到主节点,从那里你可以到curl
到这个日志位置。通常,我们总是通过http://localhost:9100
为了隧道,您可以执行以下操作:
ssh -i your-pem-file.pem -L 9100:ec2-xx-xx-xx-xx.computamazonaws.com:9100 hadoop@ec2-xx-xx-xx-xx.compute-1.amazonaws.com
然后通过简单的curl
访问日志,例如:
$ curl http://10.116.xxx.xx:9103/tasklog?attemptid=attempt_201212181113_0001_m_000000_0&all=true
您还可以登录您的aws控制台,并查找正在运行的ec2实例列表。从那里你可以获得你想要的机器日志的私有IP和相应的公共IP,然后你可以在日志的URL中用这个检索到的公共IP替换私有IP,你就可以了。
但第一种解决方案非常简单,而且我们通常会这样做。
答案 1 :(得分:2)
将所有从属服务器的公共IP及其主机名添加到/ etc / hosts文件中。
答案 2 :(得分:0)
尝试使用ssh隧道。并使用Firefox-Plugin FoxyProxy。您应该能够从本地浏览器中查看作业跟踪器界面并浏览日志