복붙노트

[HADOOP] 하둡 메모리 java.io.IOException 상위를 할당 할 수 없습니다 : 오류 = 12

HADOOP

하둡 메모리 java.io.IOException 상위를 할당 할 수 없습니다 : 오류 = 12

내가 하둡 그린 플럼 (Greenplum)에 다음과 같은 오류를 얻고있다

java.lang.Throwable: Child Error
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:271)
Caused by: java.io.IOException: Cannot run program "ln": java.io.IOException: error=12, Cannot allocate memory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:488)
    at java.lang.Runtime.exec(Runtime.java:610)
    at java.lang.Runtime.exec(Runtime.java:448)
    at java.lang.Runtime.exec(Runtime.java:386)
    at org.apache.hadoop.fs.FileUtil.symLink(FileUtil.java:567)
    at org.apache.hadoop.mapred.TaskLog.createTaskAttemptLogDir(TaskLog.java:109)
    at org.apache.hadoop.mapred.DefaultTaskController.createLogDir(DefaultTaskController.java:71)
    at org.apache.hadoop.mapred.TaskRunner.prepareLogFiles(TaskRunner.java:316)
    at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:228)
Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
    at java.lang.ProcessImpl.start(ProcessImpl.java:81)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:470)
    ... 8 more

서버는 7 세대 램 및 1G 스왑 있습니다.

힙 크기는 1,024m와 mapred.child.opts는 512m로 설정되어있다.

어떤 아이디어?

해결법

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

    1.256M에 tasktracker 메모리를 감소 노드, 아무것도 높은 원인 자식 오류 당 1 tasktrackers의 수를 제한 맵리 듀스 작업을 실행하는 데 시간이 더 걸립니다.

    256M에 tasktracker 메모리를 감소 노드, 아무것도 높은 원인 자식 오류 당 1 tasktrackers의 수를 제한 맵리 듀스 작업을 실행하는 데 시간이 더 걸립니다.

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

    2.당신이 와서 무엇이든간에 메모리 배열, 하둡 어쨌든이를 던질 가능성이 높습니다. 문제는 인 TaskTracker에서, 하둡 포크 프로세스를 심볼릭 링크를 만들거나 사용 가능한 디스크 공간을 검사 같은 간단한 파일 시스템 작업을위한 그. 그 프로세스는 부모가이만큼 메모리에 할당해야합니다.

    당신이 와서 무엇이든간에 메모리 배열, 하둡 어쨌든이를 던질 가능성이 높습니다. 문제는 인 TaskTracker에서, 하둡 포크 프로세스를 심볼릭 링크를 만들거나 사용 가능한 디스크 공간을 검사 같은 간단한 파일 시스템 작업을위한 그. 그 프로세스는 부모가이만큼 메모리에 할당해야합니다.

    이 문제를 방지하기위한 일반적인 방법은 작업의 이러한 종류의 호스트에 약간의 스왑을 추가, 또는 "이상 커밋"허용하는 TT에 할당으로 할당되지 않은만큼 실제 메모리를 떠나야한다.

  3. from https://stackoverflow.com/questions/19047879/hadoop-cannot-allocate-memory-java-io-ioexception-error-12 by cc-by-sa and MIT license