我刚刚设置了一个小的hadoop集群(使用3个ubuntu机器和apache hadoop 2.2.0),现在我正在尝试运行python流工作。
运行测试作业我遇到以下问题:
几乎所有地图任务都标记为成功,但注意说容器被杀。
在在线界面上,地图作业的日志显示:
进度 100.00
状态成功
但在注意下,它几乎表示每次尝试(~200)
由ApplicationMaster杀死的容器
或
ApplicationMaster杀死的容器。根据要求杀死容器。退出代码为143
在与该尝试相关联的日志文件中,我可以看到一条日志,上面写着 Task' attempt_xxxxxxxxx_0'完成。
我也使用相同的日志进行了3次尝试,只有3次尝试
州 KILLED
在被杀的工作中。
stderr输出为空。
在查看应用程序主日志并执行其中一次成功(但已杀死)尝试后,我会找到以下日志:
所有尝试都编号为xxxx_0所以我认为它们不会因为推测性执行而被杀死。
我应该担心这个吗?是什么导致容器被杀?任何建议将不胜感激!
答案 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
这只是一个日志记录错误。 (经理试图阻止已经完成的容器。)