YARN이란?
Cluster 환경에서 resource 관리와 application 실행을 담당하는 component.
이번 글에서 소개할 component는 Hadoop YARN 입니다. Cluster의 resource를 관리하는 역할을 하며 비슷한 역할을 담당하는 component 중에서는 가장 많이 쓰이고 있습니다.
YARN이란?
Hadoop이 처음 나왔을 때 1.0 버전에서는 여러 component들이 존재하지 않고 MapReduce만 존재했습니다. 그래서 cluster의 resource 관리 및 scheduling과 task 수행을 모두 MapReduce의 JobTracker가 담당했습니다. 하지만 MapReduce 이외의 다양한 component들이 생기고 수행해야하는 application의 수가 많아짐에 따라 여러 개의 component들이 동시에 수행될 때 bottleneck 현상이 일어나며 효율적인 scheduling을 하지 못한 채 각 서버의 resource가 부족해지는 문제가 발생했습니다. 그래서 Cluster 환경의 중심에서 resource 관리 및 scheduling 할 누군가가 필요했고 Hadoop 2.0 버전부터 등장한 것이 바로 Hadoop YARN 입니다.
YARN의 위치
YARN 이 등장함에 따라 Hadoop의 아키텍쳐는 아래 그림처럼 변하게 됩니다. Hadoop 1.0 버전의 MapReduce가 담당하던 Resource 관리 역할을 YARN이 맡아서 수행하기 때문에 데이터를 처리하는 프레임워크의 경우 YARN 으로부터 resource를 할당받아 task를 수행합니다. 그래서 HDFS 바로 위에 YARN 이 위치하게 되고 다른 component들의 경우 YARN 위에 있는 구조입니다. MapReduce의 경우 Resource 관리는 YARN 에게 맡기고 Data Procssing은 그대로 수행합니다.
YARN의 구성
YARN 의 구성은 다음과 같습니다.
Resource Manager (RM)
Resource Manager는 YARN 의 가장 핵심적인 역할을 한다고 말할 수 있습니다. 이름과 같이 cluster에서 돌아가는 모든 application들의 resource를 관리하고 할당해줍니다. Resource Manager는 크게 두 가지의 main component가 있습니다.
1) Scheduler
실행될 applicaition의 resource를 할당시키는데 주요한 역할을 합니다. Application에 필요한 resource를 기반으로 scheduling을 진행하고 task fail과 같이 resource 할당 이후의 작업에 대해서는 관여하지 않는다.
2) ApplicationsManager
Application을 실행하기에 앞서 Application Master를 실행시킬 수 있는지 검토하고 문제가 없다면 특정 DataNode에 Application Master를 할당시킨다.
Node Manager (NM)
Node Manager의 경우 cluster를 구성하는 여러 노드 중 application이 실제로 수행되는 DataNode에 위치하며 노드 내 container 생성 및 시작을 담당합니다. 그리고 추가적으로 해당 노드를 모니터링하고 Resource Manager에게 보고하는 역할 또한 맡고 있습니다.
Application Master (AM)
1개의 application마다 Resource Manager로부터 생성되어 lifecycle을 관리하고 resource 요청을 담당한다. 요청한 resource를 받으면 Node Manager들에게 task 생성과 수행을 요청한다. Node Manager와 비슷하게 application의 상태를 지속적으로 보고한다.
YARN의 동작 과정
Application이 실행됨에 있어 YARN 의 동작 과정은 아래와 같습니다.
- Client가 필요한 데이터와 함께 application을 Resource Manager에게 제출합니다.
- Resource Manager는 특정 노드에 Application Master를 실행시키고 Resource Manager에 등록됩니다.
- Application Master는 필요한 resource를 Resource Manager에게 요청한 뒤 할당 받습니다.
- Application Master는 특정 노드의 Node Manager에게 container 생성을 요청하고 실질적인 application 수행이 container에서 이루어집니다.
References
www.edureka.co/blog/hadoop-yarn-tutorial/
https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
'Hadoop Ecosystem > Hadoop' 카테고리의 다른 글
[HDFS] JMX Metrics 값 불러오기 (0) | 2023.04.02 |
---|---|
[Hadoop] YARN Capacity scheduler 특징 및 Queue 옵션 (0) | 2022.04.22 |
[Hadoop] HDFS NameNode의 Metadata 관리와 Failover 상세 과정 (0) | 2022.02.15 |
[Hadoop] MapReduce - Simplified Data Processing on Large Clusters (0) | 2021.03.25 |
[Hadoop] HDFS - The Hadoop Distributed File System (0) | 2021.03.14 |