Amazon EMR YARN CapacityScheduler에서 대기열을 생성하려면 어떻게 해야 하나요?

2분 분량
0

Amazon EMR Hadoop YARN CapacityScheduler에서 대기열을 생성하려면 어떻게 해야 하나요?

간략한 설명

EMR 클러스터에는 기본적으로 단일 대기열이 있습니다. 클러스터에 대기열을 추가하고 사용 가능한 클러스터 리소스 용량을 새 대기열에 할당할 수 있습니다.

해결 방법

재구성 명령 생성

다음 재구성 예제는 다음 작업을 수행합니다.

  • 두 개의 추가 대기열 alpha 및 beta를 생성합니다.
  • 클러스터의 총 리소스 용량 중 30%를 새 대기열 각각에 할당합니다. 대기열을 추가하고 클러스터 용량을 할당할 때 모든 대기열의 용량 합계는 100이어야 합니다. 따라서 다음 재구성 예제에서는 기본 대기열의 용량이 40%로 감소합니다.
  • 두 대기열 모두에 대한 전체 액세스 권한(‘*’ 레이블로 지정됨)을 제공합니다. 이렇게 하면 두 대기열 모두 레이블이 지정된 코어 노드에 액세스할 수 있습니다.
  • 특정 대기열에 제출하려면 yarn.scheduler.capacity.queue-mappings 파라미터에서 대기열을 지정합니다. 이 파라미터는 사용자와 같은 이름의 대기열에 사용자를 매핑합니다. 상위 대기열 이름은 u:user:primary_group.user와 같이 사용자의 기본 그룹과 같아야 합니다. 다음 예제에서는 파라미터가 u:hadoop:alpha로 설정되어 있습니다. 이는 새로 생성된 대기열 alpha에 매핑됩니다.

참고: 각 대기열이 코어 레이블에 액세스하기 위한 용량은 대기열 자체의 용량과 일치합니다. 따라서 코어 파티션은 나머지 클러스터와 동일한 비율로 대기열 간에 분할됩니다.

- Classification: capacity-scheduler
  Properties:
    yarn.scheduler.capacity.root.queues: 'default,alpha,beta'
    yarn.scheduler.capacity.root.default.capacity: '40'
    yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: '40'
    yarn.scheduler.capacity.root.alpha.capacity: '30'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels.CORE.capacity: '30'
    yarn.scheduler.capacity.root.beta.capacity: '30'
    yarn.scheduler.capacity.root.beta.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.beta.accessible-node-labels.CORE.capacity: '30'
- classification: yarn-site
  properties:
    yarn.scheduler.capacity.queue-mappings: 'u:hadoop:alpha'
  configurations: []

참고: 기본 대기열 매핑 설정을 재정의하려면 yarn.scheduler.capacity.queue-mappings-override.enable 파라미터를 true로 설정하세요. 기본적으로 이 파라미터는 false로 설정됩니다. true로 설정하면 사용자가 지정된 대기열이 아닌 다른 대기열에 작업을 제출할 수 있습니다. 자세한 내용은 Hortonworks Docs 웹 사이트의 기본 대기열 매핑 재정의 활성화를 참조하세요.

수정 사항 확인

YARN ResourceManager 웹 UI에 액세스하여 수정 사항이 적용되었는지 확인합니다.

다음은 위의 예제 재구성이 포함된 Spark 작업 예제로, Amazon EMR 6.4.0에 제출된 것입니다.

spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --conf spark.driver.memoryOverhead=512 --conf spark.executor.memoryOverhead=512 /usr/lib/spark/examples/jars/spark-examples.jar 100

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
...
...
...
22/11/29 07:58:07 INFO Client: Application report for application_1669707794547_0001 (state: ACCEPTED)
22/11/29 07:58:08 INFO Client: Application report for application_1669707794547_0001 (state: RUNNING)

This application application_1669707794547_0001 is submitted to queue "alpha"

관련 정보

Apache Hadoop 웹 사이트의 Hadoop: Capacity Scheduler

멀티 테넌트 이종 워크로드의 Amazon EMR on Amazon EC2에서 Hadoop YARN CapacityScheduler 구성

AWS 공식
AWS 공식업데이트됨 일 년 전