단일 NodeManager (hadoop worker)에서 실행되는 최대 컨테이너는 노드 관리자가 사용하는 메모리 양과 응용 프로그램 별 요구 사항에 따라 달라집니다.
기본값은 yarn.scheduler.*-allocation-*
입니다. 1GB (최소 할당), 8GB (최대 할당), 1 코어 및 32 코어입니다. 따라서 최소 및 최대 할당은 노드 당 컨테이너 수에 영향을줍니다.
yarn.scheduler.minimum-allocation-mb: 128
yarn.scheduler.maximum-allocation-mb: 2048
yarn.scheduler.minimum-allocation-vcores: 1
yarn.scheduler.maximum-allocation-vcores: 2
yarn.nodemanager.resource.memory-mb: 4096
yarn.nodemanager.resource.cpu-vcores: 4
위의 구성은 atmost 4기가바이트와 4 개의 가상 코어를 사용하고 각 컨테이너는 것과 하둡을 알려줍니다 : 당신은 기가 바이트 RAM과 4 개 개의 가상 코어가있는 경우
그래서, 여기처럼 YARN 구성이 같아야하는 방법이다 128MB ~ 2GB의 메모리와 1 ~ 2 개의 가상 코어를 가질 수 있습니다. 이러한 설정을 사용하면 최대 한 번에 최대 2 개의 컨테이너를 실행할 수 있습니다. 맵리 듀스 특정 구성에 대한 지금
:
yarn.app.mapreduce.am.resource.mb: 1024
yarn.app.mapreduce.am.command-opts: -Xmx768m
mapreduce.[map|reduce].cpu.vcores: 1
mapreduce.[map|reduce].memory.mb: 1024
mapreduce.[map|reduce].java.opts: -Xmx768m
이 구성, 당신은 이론적으로 최대 4 매퍼/4 개 기가 바이트 용기에 동시에 실행 감속기를 가질 수있다. 실제로 MapReduce 응용 프로그램 마스터는 1GB 컨테이너를 사용하므로 실제 매퍼와 리듀서의 수는 3 개로 제한됩니다. 메모리 제한을 가지고 놀 수 있지만 최적의 것을 찾기 위해 약간의 실험이 필요할 수 있습니다.
일반적으로 힙 크기는 사용 가능한 총 메모리의 약 75 %로 제한해야보다 원활하게 실행될 수 있습니다.
yarn.scheduler.minimum-allocation-mb
속성을 사용하여 컨테이너 당 메모리를 설정할 수도 있습니다.
생산 시스템에 대한 자세한 구성은 hortonworks의 document을 참조로 사용하십시오.
내 Hadoop 2.5.2 클러스터에는 각각 8GB RAM 및 8VCPU 코어가있는 마스터 노드와 RAM이 2GB이고 슬레이브 노드가 10 개인 1VCPU 코어가 있습니다. MapReduce 애플리케이션을위한 5 개의 Inputsplit이 생성됩니다. 하나의 컨테이너가 하나의 슬레이브 노드에서만 실행 중입니다. 어떤 confgiuration이 applciaton이 모든/masx 노예를 사용할 수있게 할 것인가. 50 개의 슬레이브 노드로 애플리케이션을 실행하려고합니다. – Tariq