YARN Node Labels (노드 레이블)
· Version : Hadoop 3.0.0-cdh6.3.2
YARN Labels는 서버를 특성에 맞게 구분하여 작업을 처리하게 하는 기능을 제공한다. 예를들어 클러스를 구축한 서버들의 하드웨어 사양이 다르다고 할때, IO 요청이 많은 작업은 SSD나 빠른 디스크를 가지고 있는 서버에서 작업하고, 연산이 많은 작업은 CPU 코어가 높거나, GPU 파워를 사용할 수 있는 서버에서 작업을 처리하면 더 효율적이다. 하지만 기존의 클러스터 방식은 이러한 특징에 따른 처리를 구분할 수 없이, 여유가 있는 서버에서 작업을 처리하기 때문에 YARN Node Labels를 사용하면 서버에 따라 작업을 구분할 수 있어 효율적이다.
YARN Node Labels는 아래와 같은 특징을 가지고 있다.
· 하나의 노드는 하나의 파티션을 가질 수 있으며 기본값은 DEFAULT 파티션(Partition=””)이다.
· 클러스터는 여러 파티션(여러 노드)으로 구성할 수 있다.
· 스케줄러에서 사용자가 각 파티션이 사용할 수 있는 리소스의 양을 설정해야 한다.
· 노드 레이블로 지정되지 않는 큐는 기본 파티션을 사용한다.
· 큐에서 설정된 노드만 작업에 이용할 수 있으며, 각 노드에 대한 접근제어가 가능하다.
· 각 노드마다 사용할 수 있는 자원의 비율을 정하여 사용량 제어 가능하다.
YARN 노드의 파티션은 2종류가 있다.
· Exclusive Partition : 클러스터의 자원에 여유가 있어도 지정한 파티션만 이용하여 작업을 처리
· Non-Exclusive Partition : 클러스터에 여유가 있으면 Default 파티션을 이용하여 작업 처리
노드 레이블을 사용하기 위해서는 yarn-site.xml에서 설정할 수 있다.
<property> <name>yarn.node-labels.enabled</name> <value>true</value> </property> <property> <name>yarn.node-labels.fs-store.root-dir</name> <value>hdfs://namenode:port/path/to/store/node-labels/</value> </property> |
아래 표는 캐퍼시터 스케줄러의 설정에 대한 정의를 설명한 것으로 capacity-scheduler.xml 파일에서 확인 할 수 있다.
설정 |
설명 |
yarn.scheduler.capacity.<queue-path>.capacity |
DEFAULT 파티션에 속하는 노드에 액세스 할 수있는 큐의 백분율 설정. 각 부모의 직계 자녀에 대한 기본 용량의 합은 100 |
yarn.scheduler.capacity.<queue-path>.accessible-node-labels |
"hbase, storm"과 같이 관리자가 각 큐에서 레이블에 액세스 할 수 있고 쉼표로 구분하여 레이블을 지정. 큐가 레이블 hbase 및 storm에 액세스 할 수 있음을 의미함. 모든 큐는 레이블이없는 노드에 액세스 할 수 있으므로 사용자는 이를 지정하지 않아도 됨. 사용자가 이 필드를 지정하지 않으면 상위 필드에서 상속. |
yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.capacity |
<label> partition에 속하는 노드에 액세스 할 수있는 큐의 백분율을 설정. 각 부모 아래의 직계 자녀에 대한 <label> 용량의 합계는 100. 기본적으로 0. |
yarn.scheduler.capacity.<queue-path>.accessible-node-labels.<label>.maximum-capacity |
yarn.scheduler.capacity.<queue-path>.maximum-capacity와 유사하게 각 대기열의 레이블에 대한 최대 용량. 기본적으로 100. |
yarn.scheduler.capacity.<queue-path>.default-node-label-expression |
"hbase"와 같은 값. 즉, 응용 프로그램이 자원 요청에 노드 레이블을 지정하지 않고 큐에 제출 한 경우 "hbase"를 default-node-label-expression으로 사용. |
[참고자료]
· https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/NodeLabel.html
· https://developer.ibm.com/hadoop/2017/03/10/yarn-node-labels/
2020-01-15 / Sungwook Kang / http://sungwookkang.com
Hadoop, YARN, YARN Node Labels, 얀 노드 레이블, yarn-site.xml
'SW Engineering > Hadoop' 카테고리의 다른 글
Hive 통계 정보 (0) | 2020.01.29 |
---|---|
Hive 쿼리 실행계획 보기 (0) | 2020.01.17 |
YARN 메모리 설정 (0) | 2020.01.14 |
YARN 스케줄러 – Capacity 스케줄러 (0) | 2020.01.10 |
임시 데이터 처리를 위한 매퍼 환경 설정 및 셔플 환경 설정 (0) | 2020.01.08 |