我需要获取Hadoop作业的不同任务(映射器和缩减器)运行的主机(实际的机器)。所以我有一个长期运行的工作,我需要检索当前正在运行任务的主机。我需要在外部程序中使用这些信息,因此不在实际工作中。
我知道我可以使用hadoop job -list-attempt-ids job_201307251119_0004 map running
来完成任务尝试,但这并没有向我显示主机。
我也知道我可以use the JobClient
to retrieve the host完成已完成的任务。但就我而言,任务仍在运行。
我想到的唯一解决方案是解析Job-Tracker-HTTP-Interface HTML页面,其中包含指向日志文件的URL中的主机。但这似乎不是正确的方法,有哪些替代方案?
答案 0 :(得分:0)
由于您想获取当前正在运行mapper / reducer的主机名,您可以在mapper / reducer中为其自身编写一些额外的java行来查找它。或许:
String hostname = java.net.InetAddress.getLocalHost().getHostName();
IDK,如果这正是您所需要的。