[EMR] CORE 노드 레이블에 맞는 클러스터 활용 설정

2019. 11. 19. 15:55·AWS/EMR

EMR 5.19.0 버전부터 적용된 노드 레이블 설정에 따라서 YARN에 작업을 전달해도 클러스터를 100% 사용하지 못하는 경우가 발생할 수 있습니다.

 

클러스터의 구성이 CORE 10대 TASK 40대로 구성된 경우 노드레이블은 CORE, DEFAULT 로 구성되며 CORE는 CORE레이블, TASK는 DEFAULT 레이블로 구성됩니다. 이때 AM(Application Master)하나에 컨테이너 하나를 필요로 하는 작업을 실행하면 기본설정(yarn.node-labels.am.default-node-label-expression)에서 CORE 레이블에 AM이 실행되게 설정되어 클러스터의 자원에 여유가 있어도 작업을 실행하지 않고 대기하게 됩니다. 아래와 같이 AM Partition = CORE 인 상태로 작업이 대기하게 됩니다.

 

[Wed Nov 13 07:02:17 +0000 2019] 
 Application is Activated, waiting for resources to be assigned for AM. 
 Last Node which was processed for the application : ip-1-1-1-1.ap-northeast-2.compute.internal:8041 
 ( Partition : [CORE], Total resource : <memory:12288, vCores:8>, Available resource : <memory:1024, vCores:3> ). 
   Details : AM Partition = CORE ; 
   Partition Resource = <memory:122880, vCores:80> ; 
   Queue's Absolute capacity = 70.0 % ; 
   Queue's Absolute used capacity = 99.166664 % ; Queue's Absolute max capacity = 100.0 % ;

설정

모든 노드에 대한 yarn-site(yarn-site.xml)

설정 기본값 설명
yarn.node-labels.enabled true 노드레이블 사용 여부
yarn.node-labels.am.default-node-label-expression 'CORE' 애플리케이션 마스터가 사용할 레이블
yarn.node-labels.fs-store.root-dir '/apps/yarn/nodelabels' 노드 레이블 관련 정보를 저장할 디렉토리
yarn.node-labels.configuration-type 'distributed' 노드 레이블 설정 타입

마스터 및 코어 노드에 대한 yarn-site(yarn-site.xml)

설정 기본값 설명
yarn.nodemanager.node-labels.provider 'config' yRM에서 "yarn.node-labels.configuration-type"이 "distributed"로 구성된 경우 관리자는 NM에서이 매개 변수를 구성하여 노드 레이블의 제공자를 구성 할 수 있습니다. 관리자는“config”,“script”또는 공급자의 클래스 이름을 구성 할 수 있습니다. 구성된 클래스는 org.apache.hadoop.yarn.server.nodemanager.nodelabels.NodeLabelsProvider를 확장해야합니다. "config"가 구성된 경우 "ConfigurationNodeLabelsProvider"및 "script"가 구성된 경우 "ScriptNodeLabelsProvider"가 사용됩니다.
yarn.nodemanager.node-labels.provider.configured-node-partition 'CORE' “yarn.nodemanager.node-labels.provider”가“config”로 구성된 경우 ConfigurationNodeLabelsProvider는이 매개 변수에서 파티션 레이블을 가져옵니다.

모든 노드에 대한 capacity-scheduler(capacity-scheduler.xml)

설정 기본값 설명
yarn.scheduler.capacity.root.accessible-node-labels '*' root에 접근 가능한 노드 레이블
yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity 100 CORE 노드 레이블이 사용할 수 있는 용량
yarn.scheduler.capacity.root.default.accessible-node-labels '*' default큐에 접근할 수 있는 노드 레이블
yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity 100 default큐가 CORE 레이블에서 사용할 수 있는 용량

해결방법

  • yarn.node-labels.am.default-node-label-expression 설정을 삭제하여 DEFAULT 파티션에서 AM이 실행될 수 있게 설정
  • yarn.node-labels.am.default-node-label-expression 설정을 삭제하고, CORE 레이블을 삭제하여 모든 노드가 DEFAULT 파티션으로 설정
# CORE 레이블을 삭제 
$ yarn rmadmin -removeFromClusterNodeLabels "CORE"

참고

  • 클러스터 구성 지침 및 모범 사례
반응형
저작자표시 비영리 동일조건 (새창열림)

'AWS > EMR' 카테고리의 다른 글

[EMR] AWS EMR의 클러스터 정보확인 위치  (0) 2020.01.13
[EMR] S3 503 Slow Down 오류 발생시 해결방법  (0) 2019.12.16
[EMR] AWS EMR의 hive cli에서 tez.queue.name가 설정되지 않는 문제 해결 방법  (0) 2019.11.04
[EMR] AWS EMR의 버전 선택  (0) 2019.11.01
[AWS-EMR] EMR의 하이브메타스토어 재시작  (0) 2019.10.10
'AWS/EMR' 카테고리의 다른 글
  • [EMR] AWS EMR의 클러스터 정보확인 위치
  • [EMR] S3 503 Slow Down 오류 발생시 해결방법
  • [EMR] AWS EMR의 hive cli에서 tez.queue.name가 설정되지 않는 문제 해결 방법
  • [EMR] AWS EMR의 버전 선택
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    oozie
    HDFS
    백준
    파이썬
    ubuntu
    AWS
    Python
    mysql
    다이나믹
    java
    emr
    bash
    SPARK
    airflow
    하이브
    nodejs
    build
    오류
    Hadoop
    k8s
    HIVE
    정올
    Tez
    하둡
    Linux
    S3
    error
    알고리즘
    yarn
    hbase
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[EMR] CORE 노드 레이블에 맞는 클러스터 활용 설정
상단으로

티스토리툴바