2014-08-29 5 views
7

저는 Hadoop-2.4.0을 사용하고 있으며 시스템 구성은 24 코어, 96GB RAM입니다. 나는 다음과 같은 CONFIGS원 사는 yarn.nodemanager.resource.cpu-vcores를 기려하지 않습니다

mapreduce.map.cpu.vcores=1 
yarn.nodemanager.resource.cpu-vcores=10 
yarn.scheduler.minimum-allocation-vcores=1 
yarn.scheduler.maximum-allocation-vcores=4 
yarn.app.mapreduce.am.resource.cpu-vcores=1 

yarn.nodemanager.resource.memory-mb=88064 
mapreduce.map.memory.mb=3072 
mapreduce.map.java.opts=-Xmx2048m 

용량 스케줄러 CONFIGS 내가 사는 노드 당 10 개 이상의 매퍼를 시작하지 않을 것으로 예상

위 CONFIGS와
queue.default.capacity=50 
queue.default.maximum_capacity=100 
yarn.scheduler.capacity.root.default.user-limit-factor=2 

를 사용하고 있지만, 그것은 28 매퍼를 출시

노드 당. 내가 뭔가 잘못하고있는거야 ??

답변

22

기본적으로 DefaultResourceCalculator이 사용되므로 YARN은 할당 된 코어보다 많은 컨테이너를 실행하고 있습니다. 메모리 만 고려합니다.

public int computeAvailableContainers(Resource available, Resource required) { 
// Only consider memory 
return available.getMemory()/required.getMemory(); 
    } 

DominantResourceCalculator를 사용하십시오 .CPU와 메모리를 모두 사용합니다. 용량 scheduler.xml에서 설정 아래

세트

yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator 

상세 정보 DominantResourceCalculator

+5

좋은 대답은 미래의 독자에 대한 설명과 코드 샘플을 함께. 이 질문을하는 사람이 당신의 대답을 이해할 수 있지만, 당신이 어떻게 도착했는지 설명하면 수많은 사람들을 도울 것입니다. – Stonz2

+0

@ Stonz2 나는 불완전한 대답에 대해 사과한다. 나는이 질문을했으며 다음 4-5 시간 동안 아무 대답도 없었고 단지 5 번 밖에 볼 수 없었다. 한편 나는 코드를 디버깅하고 대답을 찾았다. 다른 사람들이 필자가 필요한 configs를 신속하게 추가 할 수 있도록하기 위해 나는 그 주위에서 더 많은 실험을해야했다. – banjara

+0

몇 시간 동안 YARN이 내 노드에서 사용할 수있는 vCore 수가 음수라고 말하는 이유를 알아 냈습니다. – jonson