복붙노트

[HADOOP] `yarn.scheduler.maximum-allocation-mb`와`yarn.nodemanager.resource.memory-mb`의 차이점은 무엇입니까?

HADOOP

`yarn.scheduler.maximum-allocation-mb`와`yarn.nodemanager.resource.memory-mb`의 차이점은 무엇입니까?

yarn.scheduler.maximum-allocation-mb와 yarn.nodemanager.resource.memory-mb의 차이점은 무엇입니까?

yarn-site.xml에서이 두 가지를 볼 수 있으며 여기서 설명을 볼 수 있습니다.

yarn.scheduler.maximum-allocation-mb에는 다음과 같은 정의가 주어집니다 : RM에서 모든 컨테이너 요청에 대한 최대 할당 (MB). 이보다 높은 메모리 요청은 InvalidResourceRequestException을 던집니다. 이것은 resourcemanager에서만 메모리 요청이이 값으로 제한된다는 것을 의미합니까?

그리고 yarn.nodemanager.resource.memory-mb에는 컨테이너에 할당 할 수있는 물리적 메모리 양 (MB 단위)이 정의되어 있습니다. 이것은 전체 클러스터의 모든 컨테이너에 대한 합계를 의미합니까?

그러나, 나는 아직도 이들을 분간 할 수 없다. 그 설명은 그들이 똑같다고 생각하게합니다.

더 혼란 스러울 때, 그들의 기본값은 똑같습니다 : 8192 mb. 이 차이점을 어떻게 알 수 있습니까? 고맙습니다.

해결법

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

    1.48GB RAM을 가진 각 시스템에서 클러스터를 설정하는 경우를 생각해보십시오. 이 RAM 중 일부는 운영 체제 및 기타 설치된 응용 프로그램 용으로 예약되어 있어야합니다.

    48GB RAM을 가진 각 시스템에서 클러스터를 설정하는 경우를 생각해보십시오. 이 RAM 중 일부는 운영 체제 및 기타 설치된 응용 프로그램 용으로 예약되어 있어야합니다.

    yarn.nodemanager.resource.memory-mb :

    컨테이너에 할당 할 수있는 실제 메모리 크기 (MB)입니다. YARN이이 노드에서 사용할 수있는 메모리의 양을 의미하므로이 속성 해당 기계의 전체 메모리보다 작아야합니다.

    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>40960</value> <!-- 40 GB -->
    

    다음 단계는 컨테이너에서 사용할 수있는 전체 리소스를 분할하는 방법에 대한 YARN 지침을 제공하는 것입니다. 컨테이너에 할당 할 RAM의 최소 단위를 지정하면됩니다.

    yarn-site.xml에서

    <name>yarn.scheduler.minimum-allocation-mb</name> <!-- RAM-per-container ->
     <value>2048</value>
    

    yarn.scheduler.maximum-allocation-mb :

    MB 단위로 컨테이너에 사용할 수있는 최대 메모리 할당을 정의합니다.

    RM은 "yarn.scheduler.minimum-allocation-mb"단위로 컨테이너에 메모리를 할당 할 수 있으며 "yarn.scheduler.maximum-allocation-mb"를 초과하지 않으며 노드의 할당 된 총 메모리보다 작아야합니다. .

    yarn-site.xml에서

    <name>yarn.scheduler.maximum-allocation-mb</name> <!-Max RAM-per-container->
     <value>8192</value>
    

    MapReduce 응용 프로그램의 경우 YARN은 각지도를 처리하거나 컨테이너의 작업을 줄이고 단일 컴퓨터에서는 여러 개의 컨테이너가있을 수 있습니다. 각 노드에서 최대 20 개의 컨테이너를 허용하려면 총 40GB의 RAM / 컨테이너 20 개 = 컨테이너 당 최소 2GB의 속성 yarn.scheduler.minimum-allocation-mb가 필요합니다.

    다시 우리는 속성 "yarn.scheduler.maximum-allocation-mb"에 의해 제어되는 컨테이너의 최대 메모리 사용을 제한하려고합니다.

    예를 들어 맵 컨테이너 당 2049MB 메모리 (mapredduap.map.memory = 2048 mapred-site.xml 세트)를 요구하는 작업이 있다면 RM은 4096MB (2 * yarn.scheduler.minimum- 할당 -mb) 컨테이너.

    9999MB 맵 컨테이너를 요청하는 거대한 MR 작업이있는 경우 작업은 오류 메시지와 함께 종료됩니다.

  2. from https://stackoverflow.com/questions/43826703/difference-between-yarn-scheduler-maximum-allocation-mb-and-yarn-nodemanager by cc-by-sa and MIT license