0

distcp ジョブを実行すると、次の問題が発生します。ほぼすべてのマップ タスクが成功としてマークされますが、Container kill というメモが表示されます。

オンライン インターフェースでは、マップ ジョブのログに次のように表示されます。 Progress 100.00 State SUCCEEDED

ただし、注の下には、ほぼすべての試行 (〜 200) に対して、ApplicationMaster によってコンテナーが強制終了されたと表示されます。ApplicationMaster によってコンテナーが強制終了されました。コンテナは要求に応じて殺されました。終了コードは 143 です

試行に関連付けられたログ ファイルに、Task 'attempt_xxxxxxxxx_0' done というログが表示されます。

stderr 出力は、すべてのジョブ/試行に対して空です。

アプリケーション マスター ログを見て、成功した (ただし強制終了された) 試みの 1 つをたどると、次のログが見つかります。

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 を実行しています

これについて心配する必要がありますか?そして、コンテナが殺される原因は何ですか? どんな提案でも大歓迎です!

4

1 に答える 1

0

これらの試行が強制終了されたのは、投機的実行が原因である可能性があります。この場合、心配する必要はありません。

そうであることを確認するには、distcp を次のように実行してみてください。

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

強制終了された試行が表示されるのを停止する必要があります。

于 2017-01-05T09:45:13.397 に答える