본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

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개)이다

[1][2]

스케줄러는 교체할 수 있는 플러그인이며 하둡은 용량 스케줄러(Capacity Scheduler)와 공정 스케줄러(Fair Scheduler)를 제공한다.[1]

하둡 에코시스템 안의 위치

편집 원본 편집

YARN 은 저장 계층인 HDFS 와 처리 엔진 사이의 자원 관리 계층이다. 이름이 비슷한 다른 구성 요소와 역할을 구별해야 한다.

구성 요소 역할
YARN 클러스터 자원 관리, 작업 스케줄링
HDFS 분산 파일 저장
맵리듀스 분산 배치 처리 모델(YARN 위의 애플리케이션)
Hive HiveQL(SQL 유사 언어)로 하둡 데이터를 질의하는 데이터 웨어하우스 도구
HBase HDFS 위의 컬럼 기반 분산 NoSQL 데이터베이스
ZooKeeper 분산 코디네이션(설정 관리, 리더 선출, 동기화). 자원 배분은 하지 않는다
  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. ↑ 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.