2010-01-19 5 views
10

Hadoop을 사용하여 mapreduce 프로그램을 실행할 때 다음 오류가 발생합니다.Hadoop MapReduce의 오류

10/01/18 10:52:48 INFO mapred.JobClient: Task Id : attempt_201001181020_0002_m_000014_0, Status : FAILED 
    java.io.IOException: Task process exit with nonzero status of 1. 
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:418) 
10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stdout 
10/01/18 10:52:48 WARN mapred.JobClient: Error reading task outputhttp://ubuntu.ubuntu-domain:50060/tasklog?plaintext=true&taskid=attempt_201001181020_0002_m_000014_0&filter=stderr 

이 오류는 무엇인가요?

답변

14

Hadoop이이 오류를 생성하는 한 가지 이유는 로그 파일을 포함하는 디렉토리가 가득 찬 경우입니다. 이는 inode 당 최대 32000 개의 링크 만 허용하는 Ext3 Filesystem의 한계입니다.

확인하는 방법 전체 당신의 로그 디렉토리는 hadoop/userlogs

에서이 문제에 대한 간단한 테스트 그냥 시도하고 예를 들어, 명령 줄에서 디렉토리를 생성하는 것입니다 : 당신이 너무 많은 디렉토리가있는 경우 $ mkdir hadoop/userlogs/testdir

userlogs에서 OS는 디렉토리를 생성하지 못하고 너무 많은 것을보고합니다.

+0

이 답변이 저장되었습니다. –

+0

백만 감사드립니다. 나는 무슨 일이 일어나고 있는지도 알 수 없었다. – Adama

2

로그 디렉터리가있는 디스크 공간이 부족하면 같은 문제가 발생했습니다.

2

JVM에 일부 전용 공간을 할당하려고 시도 할 때 JVM 오류가 발생할 수 있으며 이는 사용자 시스템에 존재하지 않습니다.

sample code: 
conf.set("mapred.child.java.opts", "-Xmx4096m"); 

Error message: 
Error occurred during initialization of VM 
Could not reserve enough space for object heap 

솔루션 : 당신이 이클립스에서 실행 가능한 jar 파일을 생성하는 경우

+0

고마워요, 저에게 문제가되었습니다 – BraginiNI

0

, 그것은 제공 컴퓨터 (예 : "-Xmx1024m")에 JVM에게 제공 할 수있는 전용 메모리 값 -Xmx를 교체 hadoop 시스템에서 그 오류. 실행 가능한 부분을 추출해야합니다. 그게 내 문제를 해결해 줬어.

+0

? 설명 할 수 있니? – sharafjaffri

2

ulimit를 무제한으로 늘리십시오. 또는 대안 솔루션은 할당 된 메모리를 줄입니다.

+1

이유를 설명하거나 참조 할 수 있도록주의하십시오. – everton

+0

ulimit를 높이려면 메모리가 많이 있고 제한된 메모리를 JVM에 할당하고 많은 양의 데이터를 메모리에 보관해야하므로 JVM이 실패합니다. 메모리가 많지 않고 잘못 구성된 경우 많은 양의 메모리를 할당하면 결국이 문제가 발생합니다. VM 초기화 중 오류가 발생했습니다. 오브젝트 힙에 충분한 공간을 예약 할 수 없습니다. – user1989252