2017-01-05 10 views
0

distcp 작업 실행 다음 문제가 발생했습니다. 거의 모든 맵 작업은 성공적으로 표시되지만 Container Killed라고 표시됩니다. 지도 작업에 대한 로그는 말한다 온라인 인터페이스에 Hadoop distcp jobs SUCCEEDED, 시도 _xxx ApplicationMaster에 의해 살해

: 진행 100.00 상태

를 성공했지만 주에서 거의 모든 시도 (~ 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 작업이 완료됩니다.

내가 '원사 버전'= 하둡 2.5.0-cdh5.3.1이

내가 이것에 대해 걱정해야

실행하고

? 컨테이너가 죽게 된 원인은 무엇입니까? 어떤 제안이라도 대단히 감사하겠습니다!

+0

이것을 확인하십시오. http://stackoverflow.com/questions/30533501/hadoop-mapper-is-failing-because-of-container-killed-by-applicationmaster – BruceWayne

답변

0

죽인 시도는 추측 실행으로 인한 것일 수 있습니다. 이 경우에는 걱정할 것이 없습니다. 이 경우 있는지 확인하려면

이처럼 distcp를 실행 해보십시오 :

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

당신은 그 살해 시도를보고 중지해야합니다.

+0

"mapreduce.map.speculative = false"를 설정했습니다. ". 그래. 그리고 MAP는 끝났지 만 오랜 시간 동안 일이 진행되고 있습니다. –

+0

speculative = false로 설정 한 후에도 여전히 "ApplicationMaster에 의해 종료 된 컨테이너"오류가 표시되는지 이해하지 못 했습니까? 맵 단계가 끝나면 distcp는 여전히 사용 권한을 변경하고 체크섬을 비교해야하므로 모든 맵퍼가 완료 되더라도 작업이 계속 실행되는 것을 볼 수 있습니다. – facha

+0

당신의 제안에 감사드립니다 새로운 조건 : 두 namenodes가 NNHAstats를 서로 번역 할 때 MAP가 완료되면 곧 완료됩니다. –