48GB RAM을 가진 각 시스템마다 클러스터를 설정하는 경우를 고려해보십시오. 이 RAM 중 일부는 운영 체제 및 기타 설치된 응용 프로그램 용으로 예약되어 있어야합니다.
yarn.nodemanager.resource.memory-MB : 컨테이너에 할당 될 수 MB의 실제 메모리
양. 이는 YARN이이 노드에서 사용할 수있는 메모리 양을 의미하므로이 속성 은 해당 시스템의 총 메모리보다 작아야합니다.
<name>yarn.nodemanager.resource.memory-mb</name>
<value>40960</value> <!-- 40 GB -->
다음 단계는 컨테이너에 사용 가능한 총 자원을 파괴하는 방법에 대한 원사의 지침을 제공하는 것입니다. 컨테이너에 할당 할 RAM의 최소 단위를 지정하면됩니다. yarn-site.xml
에서
<name>yarn.scheduler.minimum-allocation-mb</name> <!-- RAM-per-container ->
<value>2048</value>
yarn.scheduler.maximum 할당-MB :
그것은 MB
의 컨테이너에 사용할 수있는 최대 메모리 할당을 정의 가
는 RM을 의미 "yarn.scheduler.minimum-allocation-mb"
단위로 컨테이너에 메모리를 할당 할 수 있으며 "yarn.scheduler.maximum-allocation-mb"
을 초과하지 않고 메모리를 할당 할 수 있습니다. d는 노드의 총 할당 메모리보다 많지 않아야합니다. 맵리 듀스 애플리케이션의 경우 yarn-site.xml
<name>yarn.scheduler.maximum-allocation-mb</name> <!-Max RAM-per-container->
<value>8192</value>
에서
, 원사 프로세스 각 맵 또는 용기에 단일 시스템에서 작업을 줄일 수 컨테이너의 개수가있을 수 있습니다. 각 노드에 최대 20 개의 컨테이너를 허용하려면 컨테이너 당 20GB의/컨테이너 20 개 = 컨테이너 당 최소 2GB가 필요합니다. yarn.scheduler.minimum-allocation-mb
다시 제한하고 싶습니다. 하나의 작업지도 컨테이너 당 2천49메가바이트 메모리 (mapreduce.map.memory.mb=2048 set in mapred-site.xml
)를 요청하는 경우 자산 예를 들어 "yarn.scheduler.maximum-allocation-mb"
에 의해 제어되는 컨테이너의 최대 메모리 사용률, RM은 하나 4,096메가바이트 (2*yarn.scheduler.minimum-allocation-mb
) 용기를 줄 것이다.
9999MB 맵 컨테이너를 묻는 거대한 MR 작업이있는 경우 작업이 오류 메시지와 함께 종료됩니다.
굉장한 답변 !! – Candic3
' '- 나는 'spark.executor.memory'가 컨테이너 당 얼마나 많은 메모리가 설정되어 있다고 생각하기 때문에 반드시 "컨테이너 당 RAM"이라고 생각하지 않는다. /집행자. – Candic3
이러한 설정은 스파크와 상호 작용합니까? 스파크가이 설정을 무시할 거라고 생각해. 맞지? 특히 용량 스케줄러를 사용하는 경우 .... – Candic3