복붙노트

[HADOOP] 작업 시도 ID NNN의 컨테이너를 할당 해제 할 수 없습니다.

HADOOP

작업 시도 ID NNN의 컨테이너를 할당 해제 할 수 없습니다.

컨테이너가 YARN에서 메모리를 할당하는 방법과 다른 하드웨어 구성에 따라 성능을 이해하려고합니다.

따라서 시스템에는 30GB의 RAM이 있으며 YARN의 경우 24GB를 선택하고 시스템의 경우 6GB를 남겨 둡니다.

yarn.nodemanager.resource.memory-mb=24576

그런 다음 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html에 따라 Map & Reduce 작업 메모리에 대한 용기를 얻었습니다.

이 두 값을 기본값으로 둡니다.

mapreduce.map.memory.mb
mapreduce.map.java.opts

그러나이 두 구성을 변경합니다.

mapreduce.reduce.memory.mb=20480
mapreduce.reduce.java.opts=Xmx16384m

그러나 해당 설정으로 작업을 배치하면 오류가 발생하고 강제로 작업이 종료됩니다.

2015-03-10 17:18:18,019 ERROR [Thread-51] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Could not deallocate container for task attemptId attempt_1426006703004_0004_r_000000_0

지금까지 나를 위해 일한 유일한 값은 감속기 메모리 <= 12GB를 설정하는 것입니다. 그러나 왜 그럴까요? 더 많은 메모리를 할당 할 수 없거나 컨테이너 당 최대 2 개의 RAM을 할당 할 수없는 이유는 무엇입니까?

그래서 내가 여기서 잃어버린 것? 더 나은 성능을 위해 해당 값을 설정하는 동안 고려해야 할 사항이 있습니까?

해결법

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

    1.yarn.scheduler.maximum-allocation-mb 값을 변경하여이 문제를 해결했습니다. YARN에서 작업은 서버 측 구성 yarn.scheduler.maximum-allocation-mb보다 많은 메모리를 사용해서는 안됩니다. yarn.nodemanager.resource.memory-mb의 값을 설정했지만 최대 할당 크기도 반영해야합니다. 따라서 최대 할당을 업데이트 한 후 작업이 예상대로 작동했습니다.

    yarn.scheduler.maximum-allocation-mb 값을 변경하여이 문제를 해결했습니다. YARN에서 작업은 서버 측 구성 yarn.scheduler.maximum-allocation-mb보다 많은 메모리를 사용해서는 안됩니다. yarn.nodemanager.resource.memory-mb의 값을 설정했지만 최대 할당 크기도 반영해야합니다. 따라서 최대 할당을 업데이트 한 후 작업이 예상대로 작동했습니다.

    yarn.nodemanager.resource.memory-mb=24576
    yarn.scheduler.maximum-allocation-mb=24576
    
  2. from https://stackoverflow.com/questions/28970528/could-not-deallocate-container-for-task-attemptid-nnn by cc-by-sa and MIT license