Hadoop distcp作业已成功,但由ApplicationMaster杀死的attempt_xxx

时间:2017-01-05 09:37:35

标签: hadoop yarn distcp

运行distcp作业我遇到以下问题: 几乎所有的地图任务都被标记为成功,但注意到Container已被杀死。

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

但是注意它几乎每次尝试都会说(~200) ApplicationMaster杀死的容器。 ApplicationMaster杀死的容器。根据要求杀死容器。退出代码是143

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

对于所有作业/尝试,

stderr输出为空。

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

2017-01-05 10:27:22,772 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskImpl: Task succeeded with attempt attempt_1483370705805_4012_m_000000_0
2017-01-05 10:27:22,773 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskImpl: task_1483370705805_4012_m_000000 Task Transitioned from RUNNING to SUCCEEDED
2017-01-05 10:27:22,775 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Num completed Tasks: 1
2017-01-05 10:27:22,775 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: job_1483370705805_4012Job Transitioned from RUNNING to COMMITTING
2017-01-05 10:27:22,776 INFO [CommitterEvent Processor #1] org.apache.hadoop.mapreduce.v2.app.commit.CommitterEventHandler: Processing the event EventType: JOB_COMMIT
2017-01-05 10:27:23,118 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Before Scheduling: PendingReds:0 ScheduledMaps:0 ScheduledReds:0 AssignedMaps:1 AssignedReds:0 CompletedMaps:1 CompletedReds:0 ContAlloc:1 ContRel:0 HostLocal:0 RackLocal:0
2017-01-05 10:27:24,125 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Received completed container container_e116_1483370705805_4012_01_000002
2017-01-05 10:27:24,126 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: After Scheduling: PendingReds:0 ScheduledMaps:0 ScheduledReds:0 AssignedMaps:0 AssignedReds:0 CompletedMaps:1 CompletedReds:0 ContAlloc:1 ContRel:0 HostLocal:0 RackLocal:0
2017-01-05 10:27:24,126 INFO [AsyncDispatcher event handler] org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: Diagnostics report from attempt_1483370705805_4012_m_000000_0: Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

我已设置" mapreduce.map.speculative = false"!

所有MAP任务都是SUCCEEDED(distcp作业没有REDUCE),但是MAPREDUCE会持续很长时间(几个小时),然后它会成功并且完成distcp作业。

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

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

1 个答案:

答案 0 :(得分:0)

那些被杀的企图可能是由于投机性的执行。在这种情况下,没有什么可担心的。

要确保是这种情况,请尝试运行您的distcp:

hadoop distcp  -Dmapreduce.map.speculative=false ...

你应该停止看到那些被杀的尝试。