我刚刚完成了一个小型 hadoop 集群的设置(使用 3 台 ubuntu 机器和 apache hadoop 2.2.0),现在我正在尝试运行 python 流作业。
运行测试作业遇到以下问题:
几乎所有的 map task 都被标记为成功,但有注释说Container killed。
在在线界面上, map 作业的日志显示:
进度 100.00
状态成功
但在注意下它表示几乎每次尝试 (~200)
容器被 ApplicationMaster 杀死。
或者
容器被 ApplicationMaster 杀死。根据要求杀死容器。退出代码为 143
在与尝试关联的日志文件中,我可以看到一条日志,上面写着任务“attempt_xxxxxxxxx_0”已完成。
我也有 3 次尝试使用相同的日志,只有这 3 次有
状态被杀
这是被杀死的工作。
所有作业/尝试的 stderr 输出为空。
当查看应用程序主日志并跟踪其中一次成功(但被杀死)的尝试时,我发现以下日志:
- 从 NEW 过渡到 UNASSIGNED
- 从 UNASSIGNED 过渡到 ASSIGNED
- 几个进度更新,包括:1.0
- 完成确认
- 运行到 SUCCESS_CONTAINER_CLEANUP
- CONTAINER_REMOTE_CLEANUP
- 杀死 attempt_xxxx
- 从 SUCCESS_CONTAINER_CLEANUP 过渡到 SUCCEEDED
- 任务从 RUNNING 转变为 SUCCEEDED
所有尝试都编号为 xxxx_0,因此我假设它们不会因推测执行而被杀死。
我应该为此担心吗?是什么导致容器被杀死?任何建议将不胜感激!
请您参考如下方法:
是的,我同意@joshua。这似乎是一个与任务/容器相关的错误,在成功完成 map/reduce 任务后没有正常结束。宽限期过后,ApplicationMaster 必须将其杀死。
我正在运行 'yarn version'= Hadoop 2.5.0-cdh5.3.0
我选择了其中一项任务,并在为我的 MR 应用程序生成的日志中查找其历史记录:
$ yarn logs -applicationId application_1422894000163_0003 |grep attempt_1422894000163_0003_r_000008_0
您会看到“attempt_1422894000163_0003_r_000008_0”经历了“TaskAttempt 从 NEW 过渡到 UNASSIGNED .. to RUNNING to SUCCESS_CONTAINER_CLEANUP”。
在“SUCCESS_CONTAINER_CLEANUP”步骤中,您将看到有关此容器被终止的消息。终止此容器后,此尝试进入“TaskAttempt 从 SUCCESS_CONTAINER_CLEANUP 过渡到 SUCCEEDED”步骤。