2017-03-29 4 views
5

hadoop 클러스터에서 YARN 응용 프로그램의 병렬 실행을 비활성화해야합니다. 이제 YARN에는 기본 설정이 있으므로 여러 작업을 병렬로 실행할 수 있습니다. 두 가지 작업이 모두 느려지므로 이점이 없습니다.YARN에서 독점 FIFO 응용 프로그램 대기열을 구성하는 방법은 무엇입니까?

최대 설정 수를 제한하는이 설정은 yarn.scheduler.capacity.maximum-applications이지만, 제출 된 앱과 실행중인 앱 (문서에 명시된대로) 모두에 영향을줍니다. 현재 실행중인 애플리케이션이 완료되지 않을 때까지 제출 된 앱을 대기열에 보관하고 싶습니다. 어떻게 할 수 있습니까?

+0

얼마나 많은 다른 사용자가 작업을 제출할 것? – franklinsijo

+1

@franklinsijo 2 명 또는 3 명의 사용자, 최대 3 명의 작업이 동시에 제출되었습니다. – AdamSkywalker

답변

1

귀하의 질문에 대한 나의 이해에 따라. 위의 코드 줄/설정 만 도움이되지 않을 수 있습니다. 기존 설정으로 코드 아래에서 확인할 수 있습니까?

<allocations> 
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy> 

    <queue name="<<Your Queue Name>>" 
    <weight>40</weight> 
    <schedulingPolicy>fifo</schedulingPolicy> 
    </queue> 

    <queue name=<<Your Queue Name>>> 
    <weight>60</weight> 
    <queue name=<<Your Queue Name>> /> 
    <queue name=<<Your Queue Name>> /> 
    </queue> 

    <queuePlacementPolicy> 
    <rule name="specified" create="false" /> 
    <rule name="primaryGroup" create="false" /> 
    <rule name="default" queue=<<Your Queue Name>> /> 
    </queuePlacementPolicy> 
</allocations> 
+0

이 설정을 발견 한 링크를 알려주시겠습니까? 그것이 어떻게 작동하는지에 대한 설명이 없습니다, 나는 그들을 맹목적으로 클러스터로 밀어 넣을 수 없습니다. – AdamSkywalker

+0

Adam, 여기 링크 : https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler. html - 나는 하둡 (Hadoop) : Tom White의 결정적인 가이드, 제 4 판을 참고할 것입니다. Chapter-4 –

2

1) 변경 스케줄러 FairScheduler-

하둡 배포판 (클라우 데라는 기본 스케줄러로 FairScheduler를 사용) 기본적으로 CapacityScheduler을 사용합니다.

공정 스케줄러는 사용자 당 큐를 생성 default 대기열을 설정 yarn-site.xml

<property> 
    <name>yarn.resourcemanager.scheduler.class</name> 
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> 
</property> 

2)이 속성을 추가합니다. I.E., 세 명의 다른 사용자가 작업을 제출하면 세 개의 개별 대기열이 생성되고 자원은 세 개의 대기열간에 공유됩니다. yarn-site.xml

<property> 
    <name>yarn.scheduler.fair.user-as-default-queue</name> 
    <value>false</value> 
</property> 

에서이 속성을 추가하여 사용 안 함이 모든 작업이 하나의 default 큐에 들어갈 것을 보장합니다.

3) 제한 최대 응용 프로그램 작업 대기열이 하나 default 큐에 제한되어 이제

. 해당 응용 프로그램의 최대 수를 해당 대기열에서 실행할 수있는 1으로 제한하십시오.

$HADOOP_CONF_DIR에서 fair-scheduler.xml라는 이름의 파일을 만들고 이러한 항목 또한
<allocations> 
    <queueMaxAppsDefault>1</queueMaxAppsDefault> 
</allocations> 

를 추가, 이러한 속성을 추가 한 후 yarn-site.xml

<property> 
    <name>yarn.scheduler.fair.allocation.file</name> 
    <value>$HADOOP_CONF_DIR/fair-scheduler.xml</value> 
</property> 

다시 시작 YARN 서비스에서이 속성을 추가 할 수 있습니다.


가 제출 여러 응용 프로그램에서 응용 프로그램 ACCEPTED 먼저 활성 응용 프로그램으로 간주되고 나머지는 보류중인 응용 프로그램으로 대기하게됩니다. 이 대기중인 응용 프로그램은 RUNNING 응용 프로그램이 FINISHED이 될 때까지 계속 ACCEPTED 상태가됩니다. 활성 애플리케이션은 사용 가능한 모든 리소스를 활용할 수 있습니다.

참조 :Hadoop: Fair Scheduler

+1

멋진 답변, 곧 시도해 보겠습니다. – AdamSkywalker

+0

아직 시도하지는 않았지만 올바른 접근 방식이라고 생각합니다. 나는 우리가 그것을 확인할 때 대답을 받아 들일 것이다. – AdamSkywalker

+0

오케이 @ 아담. 이슈가 있으면 여기에 의견을 남기십시오. – franklinsijo

관련 문제