获取主机的hadoop工作

时间:2013-07-25 13:00:31

标签: hadoop

我需要获取Hadoop作业的不同任务(映射器和缩减器)运行的主机(实际的机器)。所以我有一个长期运行的工作,我需要检索当前正在运行任务的主机。我需要在外部程序中使用这些信息,因此不在实际工作中。

我知道我可以使用hadoop job -list-attempt-ids job_201307251119_0004 map running 来完成任务尝试,但这并没有向我显示主机。

我也知道我可以use the JobClient to retrieve the host完成已完成的任务。但就我而言,任务仍在运行。

我想到的唯一解决方案是解析Job-Tracker-HTTP-Interface HTML页面,其中包含指向日志文件的URL中的主机。但这似乎不是正确的方法,有哪些替代方案?

1 个答案:

答案 0 :(得分:0)

由于您想获取当前正在运行mapper / reducer的主机名,您可以在mapper / reducer中为其自身编写一些额外的java行来查找它。或许:

String hostname = java.net.InetAddress.getLocalHost().getHostName();

IDK,如果这正是您所需要的。