如何在Amazon EMR上终止正在运行的地图任务?

时间:2012-10-13 14:43:52

标签: map hadoop amazon emr

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

但我无法弄清楚如何做到这一点。我已经考虑过要弄清楚哪些实例正在运行任务,然后终止这些实例,但是

  1. 我不知道如何找出哪些实例是罪魁祸首
  2. 恐怕会产生意想不到的效果。
  3. 如何杀死单个地图任务?

2 个答案:

答案 0 :(得分:6)

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

hadoop job -kill-task [attempt_id]

这将终止给定的map任务并在另一个上重新提交 具有新ID的节点。

attemp_id导航Jobtracker的{​​{1}}到地图任务 有问题,点击它并记下它的ID(例如:attempt_201210111830_0012_m_000000_0)

答案 1 :(得分:1)

如Lorand所述,ssh到主节点,并执行:

bin/hadoop job -list
bin/hadoop job –kill <JobID>