YARN
IT위키
더 많은 작업
YARN(Yet Another Resource Negotiator, 얀)은 하둡 클러스터의 CPU·메모리 자원을 관리하고, 그 위에서 실행되는 애플리케이션에 자원을 배분하며 작업을 스케줄링하는 하둡의 자원 관리 프레임워크이다.
하둡 1.x 에서는 잡트래커(JobTracker)가 자원 관리와 맵리듀스 작업의 일정·감시를 한꺼번에 맡았다. 클러스터가 커지면 잡트래커가 병목이 되었고, 맵리듀스 말고 다른 처리 방식은 클러스터를 함께 쓰기 어려웠다. 하둡 2.0 에서 도입된 YARN 은 이 두 기능을 갈라, 클러스터 전체의 자원 관리는 전역 리소스매니저가, 애플리케이션별 작업 일정과 감시는 애플리케이션마다 뜨는 애플리케이션마스터가 맡게 했다.[1] 그 결과 맵리듀스는 YARN 위에서 도는 애플리케이션 가운데 하나가 되었고, 스파크, Tez, Flink 같은 엔진도 같은 클러스터의 자원을 나누어 쓸 수 있게 되었다.[2]
| 구성 요소 | 위치 | 역할 |
|---|---|---|
| 리소스매니저(ResourceManager, RM) | 클러스터에 하나(고가용성 구성 시 대기 노드 추가) | 모든 애플리케이션 사이의 자원 배분을 최종 결정한다. 스케줄러와 애플리케이션매니저로 이루어진다 |
| 스케줄러(Scheduler) | RM 내부 | 용량·큐 제약에 따라 자원을 배분만 한다. 작업 상태 감시나 실패한 작업의 재시작은 하지 않는다 |
| 애플리케이션매니저(ApplicationsManager) | RM 내부 | 작업 제출을 받고 애플리케이션마스터를 띄울 첫 컨테이너를 잡아 주며, 마스터가 죽으면 다시 띄운다 |
| 노드매니저(NodeManager, NM) | 노드마다 하나 | 컨테이너를 띄우고 끄며 자원 사용량을 감시해 RM 에 보고(하트비트)한다 |
| 애플리케이션마스터(ApplicationMaster, AM) | 애플리케이션마다 하나 | RM 과 자원을 협상하고 노드매니저와 함께 작업을 실행·감시한다 |
| 컨테이너(Container) | 노드 위 | 특정 노드에 묶인 자원 묶음(예: 메모리 2GB, CPU 1개)이다 |
스케줄러는 교체할 수 있는 플러그인이며 하둡은 용량 스케줄러(Capacity Scheduler)와 공정 스케줄러(Fair Scheduler)를 제공한다.[1]
- ↑ 1.0 1.1 1.2 「Apache Hadoop YARN」, Apache Hadoop 공식 문서, https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html, 확인일: 2026-11-04.
- ↑ 2.0 2.1 Vinod Kumar Vavilapalli 외, 「Apache Hadoop YARN: Yet Another Resource Negotiator」, ACM Symposium on Cloud Computing(SoCC) 2013, https://www.cse.ust.hk/~weiwa/teaching/Fall15-COMP6611B/reading_list/YARN.pdf, 확인일: 2026-11-04.