복붙노트

[HADOOP] 왜 YARN Java 힙 공간 메모리 오류입니까?

HADOOP

왜 YARN Java 힙 공간 메모리 오류입니까?

YARN에서 메모리를 설정하려고합니다. 그래서 yarn-site.xml 및 mapred-site.xml에서 일부 매개 변수를 구성하려고합니다. 그건 그렇고 난 2.6.0을 사용했다. 하지만지도 작업을 할 때 오류가 발생합니다. 그것은 이렇게 말한다 :

15/03/12 10:57:23 INFO mapreduce.Job: Task Id :
attempt_1426132548565_0001_m_000002_0, Status : FAILED
Error: Java heap space
Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

나는 그것을 올바르게 설정했다고 생각한다. map.java.opts와 reduce.java.opts에 작은 크기 = 64MB를 준다. mapred-site.xml에서 map.java.opts 및 reduce.java.opts를 변경하는 것처럼 일부 매개 변수를 구성하려고 시도했지만 여전히이 오류가 발생합니다. 나는 YARN 메모리가 어떻게 작동 하는지를 정말로 이해하지 못한다고 생각합니다. 이 방법은 단일 노드 컴퓨터에서 시도합니다.

해결법

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

    1.Yarn은 리소스 관리를 처리하고 MapReduce 및 실시간 작업 부하를 사용할 수있는 배치 작업 부하를 처리합니다.

    Yarn은 리소스 관리를 처리하고 MapReduce 및 실시간 작업 부하를 사용할 수있는 배치 작업 부하를 처리합니다.

    원사 컨테이너 레벨과 매퍼 및 감속기 레벨에서 설정할 수있는 메모리 설정이 있습니다. 메모리는 원사 컨테이너 크기 단위로 요청됩니다. 매퍼 및 감속기 태스크는 컨테이너 내에서 실행됩니다.

    mapreduce.map.memory.mb 및 mapreduce.reduce.memory.mb

    위의 매개 변수는 map-reduce 태스크의 상위 메모리 제한을 나타내며이 태스크에 의해 가입 된 메모리가이 제한을 초과하면 해당 컨테이너가 강제 종료됩니다.

    이 매개 변수는 각각 mapper 및 reduce 작업에 할당 할 수있는 최대 메모리 양을 결정합니다. 예를 들어 보겠습니다. Mapper는 구성 매개 변수 mapreduce.map.memory.mb에 정의 된 메모리의 상한으로 제한됩니다.

    그러나, yarn.scheduler.minimum-allocation-mb의 값이 mapreduce.map.memory.mb의이 값보다 크면 yarn.scheduler.minimum-allocation-mb가 존중되고 해당 크기의 컨테이너가 제공됩니다 아웃.

    이 매개 변수는 신중하게 설정해야하며 올바르게 설정하지 않으면 성능이 좋지 않거나 OutOfMemory 오류가 발생할 수 있습니다.

    mapreduce.reduce.java.opts 및 mapreduce.map.java.opts

    이 속성 값은 map / reduce 작업의 메모리 할당 범위 내에 있어야하므로 mapreduce.map.memory.mb / mapreduce.reduce.memory.mb에 정의 된대로 map / reduce 작업의 상한보다 작아야합니다.

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

    2.@ Gaurav가 말한 것은 정확합니다. 비슷한 문제가 생겼다. 아래와 같은 것을 시도했다. yarn-site.xml의 속성을 아래에 포함하고 VM을 다시 시작한다.

    @ Gaurav가 말한 것은 정확합니다. 비슷한 문제가 생겼다. 아래와 같은 것을 시도했다. yarn-site.xml의 속성을 아래에 포함하고 VM을 다시 시작한다.

    <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    <description>Whether virtual memory limits will be enforced for    containers</description>
    </property>
    
    <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>4</value>
    <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
    </property>
    
  3. from https://stackoverflow.com/questions/29001702/why-yarn-java-heap-space-memory-error by cc-by-sa and MIT license