복붙노트

[HADOOP] CDH5.2 : MR, 출력 수집기를 초기화 할 수 없습니다.

HADOOP

CDH5.2 : MR, 출력 수집기를 초기화 할 수 없습니다.

Cloudera CDH5.2 빠른 시작 VM 모든 노드 상태를 보여주는 Cloudera 관리자 = 녹색

빌드 경로에 관련된 모든 cloudera jars를 포함하여 MR 작업을 Eclipse에서 수행했습니다. avro-1.7.6-cdh5.2.0.jar, avro-mapred-1.7.6-cdh5.2.0-hadoop2.jar, hadoop-common-2.5.0-cdh5.2.0.jar, hadoop-mapreduce-client-core-2.5.0-cdh5.2.0.jar

나는 다음 일을했다.

hadoop jar jproject1.jar avro00.AvroUserPrefCount -libjars ${LIBJARS} avro/00/in avro/00/out

다음과 같은 오류가 발생합니다. Java 힙 문제입니까, 주석입니까? 미리 감사드립니다.

14/11/14 01:02:40 INFO client.RMProxy: Connecting to ResourceManager at quickstart.cloudera/127.0.0.1:8032
14/11/14 01:02:43 INFO input.FileInputFormat: Total input paths to process : 1
14/11/14 01:02:43 INFO mapreduce.JobSubmitter: number of splits:1
14/11/14 01:02:44 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1415950730849_0001
14/11/14 01:02:45 INFO impl.YarnClientImpl: Submitted application application_1415950730849_0001
14/11/14 01:02:45 INFO mapreduce.Job: The url to track the job: http://quickstart.cloudera:8088/proxy/application_1415950730849_0001/
14/11/14 01:02:45 INFO mapreduce.Job: Running job: job_1415950730849_0001
14/11/14 01:03:04 INFO mapreduce.Job: Job job_1415950730849_0001 running in uber mode : false
14/11/14 01:03:04 INFO mapreduce.Job:  map 0% reduce 0%
14/11/14 01:03:11 INFO mapreduce.Job: Task Id : attempt_1415950730849_0001_m_000000_0, Status : FAILED
Error: java.io.IOException: Unable to initialize any output collector
    at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:412)
    at org.apache.hadoop.mapred.MapTask.access$100(MapTask.java:81)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:695)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:767)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
...
...

해결법

  1. ==============================

    1.실패한 시도의 전체 작업 로그를 확인하면 시도 _1415950730849_0001_m_000000_0은 (는) 예외가 발생한 이유를 알려줍니다.

    실패한 시도의 전체 작업 로그를 확인하면 시도 _1415950730849_0001_m_000000_0은 (는) 예외가 발생한 이유를 알려줍니다.

    이러한 오류를 관찰하는 가장 일반적인 이유는 작업의 io.sort.mb 값이 잘못 구성 되었기 때문입니다. 이 값은 구성된 맵 태스크 힙 크기에 근접하거나 그 이상이되어서는 안되며 현재는 최대 2000MB (Java 배열 최대 크기)를 초과해서는 안됩니다.

    진정한 실패에 대한 오류를보다 명확하게 만드는 업스트림 개선 또한 MAPREDUCE-6194를 통해 최근에 제기되고 해결되었습니다.

  2. ==============================

    2.어제 같은 문제가 발생했습니다. 실패한 특정 맵 작업에 대한 syslog를 확인했는데, 이는이 오류를 일으키는 작업에서 또 다른 예외를 얻고 있음을 나타냅니다. 필자의 경우이 구문 분석은 유효하지 않았으며이 문제를 해결했을 때이 오류가 수정되었습니다.

    어제 같은 문제가 발생했습니다. 실패한 특정 맵 작업에 대한 syslog를 확인했는데, 이는이 오류를 일으키는 작업에서 또 다른 예외를 얻고 있음을 나타냅니다. 필자의 경우이 구문 분석은 유효하지 않았으며이 문제를 해결했을 때이 오류가 수정되었습니다.

    실패한 작업에 대한 로그를 면밀히 검토하면 문제의 근본 원인을 알 수 있습니다.

  3. from https://stackoverflow.com/questions/26926571/cdh5-2-mr-unable-to-initialize-any-output-collector by cc-by-sa and MIT license