Hadoop流媒体作业已成功但被ApplicationMaster杀死

时间:2014-06-02 11:39:37

标签: python hadoop


我刚刚设置了一个小的hadoop集群(使用3个ubuntu机器和apache hadoop 2.2.0),现在我正在尝试运行python流工作。

运行测试作业我遇到以下问题:
几乎所有地图任务都标记为成功,但注意说容器被杀

在在线界面上,地图作业的日志显示:
进度 100.00
状态成功

但在注意下,它几乎表示每次尝试(~200) 由ApplicationMaster杀死的容器 或
ApplicationMaster杀死的容器。根据要求杀死容器。退出代码为143

在与该尝试相关联的日志文件中,我可以看到一条日志,上面写着 Task' attempt_xxxxxxxxx_0'完成。

我也使用相同的日志进行了3次尝试,只有3次尝试 KILLED
在被杀的工作中。

对于所有作业/尝试,

stderr输出为空。

在查看应用程序主日志并执行其中一次成功(但已杀死)尝试后,我会找到以下日志:

  • 从NEW转换为UNASSIGNED
  • 从UNASSIGNED转换为ASSIGNED
  • 几个进度更新,包括:1.0
  • 完成确认
  • 运行至SUCCESS_CONTAINER_CLEANUP
  • CONTAINER_REMOTE_CLEANUP
  • KILLING attempt_xxxx
  • 从SUCCESS_CONTAINER_CLEANUP转换为SUCCEEDED
  • 任务从RUNNING转为SUCCEEDED

所有尝试都编号为xxxx_0所以我认为它们不会因为推测性执行而被杀死。

我应该担心这个吗?是什么导致容器被杀?任何建议将不胜感激!

3 个答案:

答案 0 :(得分:2)

是的,我同意@joshua。它似乎是一个与任务/容器相关的错误,在成功完成map / reduce任务后没有正常死亡。宽限期过后,ApplicationMaster必须将其删除。

我正在运行'纱线版' = Hadoop 2.5.0-cdh5.3.0

我选择了其中一项任务,并在为我的MR应用程序生成的日志中为其历史记录grep' ed:

$ yarn logs -applicationId application_1422894000163_0003 |grep attempt_1422894000163_0003_r_000008_0

你会看到" attempt_1422894000163_0003_r_000008_0"通过" TaskAttempt从NEW转换为UNASSIGNED ..转到RUNNING到SUCCESS_CONTAINER_CLEANUP'。

在步骤' SUCCESS_CONTAINER_CLEANUP'中,您将看到有关此容器被杀的消息。在此容器被杀死之后,此尝试将进入" TaskAttempt从SUCCESS_CONTAINER_CLEANUP转换为SUCCEEDED"步。

答案 1 :(得分:0)

据我所知,在许多节点上运行相同的任务。只要一个节点返回结果,onther节点上的任务就会被终止。这就是为什么工作成功但单个任务处于杀戮状态。

答案 2 :(得分:0)

您使用的是哪个版本?你可能遇到过 YARN-903:DistributedShell throwing Errors in logs after successfull completion

这只是一个日志记录错误。 (经理试图阻止已经完成的容器。)