본문 바로가기

Minding's Programming/Spark

[Hadoop] 하둡의 분산처리 시스템, YARN 개념 정리

728x90
반응형

YARN은 Hadoop 2.0에서부터 지원되는 하둡의 Resourc Management Layer로, 세부 리소스 관리가 가능한 범용 컴퓨팅 프레임워크이다. HDFS 위에서 실행되며, YARN을 통해 Spark, MapReduce, Tez 등의 다양한 애플리케이션이 실행된다.

 

YARN의 구조

YARN의 구조 (출처: GeeksforGeeks)

 

YARN의 구조는 위 그림과 같다. 마스터 노드라고 할 수 있는 'Resource Manager'와 그 아래 슬레이브 노드인 'Node Manager'가 있다. 노드 매니저들은 리소스 매니저의 요구에 따라 자신이 가지고 있는 자원을 일부 넘겨주는 역할을 한다.

 

노드 매니저가 넘겨준다는 자원은 '컨테이너'라고 불린다. 컨테이너는 어떤 모듈을 실행시키는 구성 요소로, Java의 JVM과 비슷한 존재라고 생각할 수 있다. 

 

YARN의 동작

 

YARN의 동작 (출처: GeeksforGeeks)

YARN은 위와 같은 방식으로 동작한다. 하나씩 살펴보자면,

  1. Client에서 실행 코드(+환경 정보)를 Resource Manager(RM)에게 제출
  2. RM이 Application Manager(AM)를 실행시키기 위해 컨테이너를 할당함
  3. AM이 RM에 등록
  4. AM이 RM으로 코드 실행에 필요한 리소스 요구
  5. AM이 Node Manager로부터 컨테이너를 받아와 실행 시작
  6. 클라이언트가 요구한 실행 코드가 컨테이너에서 실행됨
  7. RM을 통해 클라이언트가 App 상태 모니터링
  8. App 실행이 완료되면 RM에 대한 등록을 취소(제거)

Hadoop 3.0과 YARN 2.0

최신 버전의 하둡인 3.0버전에서는 YARN도 2.0버전을 사용한다. YARN 1.0버전과 비교해서 달라진 점을 알아보자.

 

  • YARN 프로그램들의 논리적인 그룹(flow)으로 나눠서 자원 관리가 가능함.
    • 이를 통해 서버에서 Hbase를 기본 스토리지로 사용함
  • 파일 시스템(하둡 3.0)
    • 네임노드의 경우 다수의 스탠바이 네임노드를 지원함
    • HDFS, S3, Azure Storage, Azure DataLake Storage 등을 지원
728x90