3

我有一份在 32 个现场实例上使用 Hadoop 0.20 运行的工作。它已经运行了 9 个小时,没有任何错误。在那段时间里它已经处理了 3800 个任务,但我注意到只有两个任务似乎被卡住并且已经单独运行了几个小时(显​​然响应是因为它们没有超时)。这些任务通常不会超过 15 分钟。我不想失去所有已经完成的工作,因为这花了我很多钱。我真的很想杀死这两个任务,让 Hadoop 重新分配它们或将它们视为失败。在他们停止之前,我无法从其他 3798 个映射中获得 reduce 结果!

但我不知道该怎么做。我考虑过尝试找出哪些实例正在运行任务,然后终止这些实例,但是

  1. 我不知道如何找出哪些实例是罪魁祸首
  2. 恐怕会产生意想不到的影响。

我如何杀死单个地图任务?

4

2 回答 2

7

通常,在 Hadoop 集群上,您可以通过发出以下命令终止特定任务:

hadoop job -kill-task [attempt_id]

这将终止给定的地图任务并在具有新 ID 的不同节点上重新提交它。

attemp_id导航到相关地图任务,请单击它并记下它的 ID(例如:尝试_201210111830_0012_m_000000_0 Jobtrackerweb UI

于 2012-10-13T20:09:21.440 回答
1

ssh 到 Lorand 提到的主节点,然后执行:

bin/hadoop job -list
bin/hadoop job –kill <JobID>
于 2015-10-16T09:32:15.670 回答