0

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

在在线界面上,地图作业的日志显示:Progress 100.00 State SUCCEEDED

但在 Note 下,它表示几乎每次尝试 (~200) 容器都被 ApplicationMaster 杀死。容器被 ApplicationMaster 杀死。容器应要求被杀死。退出代码是 143

在与尝试关联的日志文件中,我可以看到一条日志显示任务“尝试_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 任务都成功了(distcp 作业没有 REDUCE),但是 MAPREDUCE 进行了很长时间(几个小时),然后它成功了,distcp 作业完成了。

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

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

4

1 回答 1

0

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

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

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

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

于 2017-01-05T09:45:13.397 回答