터칭 데이터

YARN의 동작방식 본문

하둡과 Spark

YARN의 동작방식

터칭 데이터 2024. 1. 15. 17:01

 

 

YARN의 동작 방식


YARN의 세부 동작을 알아보고 하둡 버전 간의 차이점에 대해 간략히 요약해보자

 

 

 

 

 

 

 

 

 

분산 컴퓨팅 시스템: 하둡 2.0 (YARN 1.0)

 

하둡 2.0 분산 컴퓨팅 시스템의 구성도

 

마스터(Master): 리소스 매니저

슬레이브(Slave): 노드 매니저

 

컨테이너는 JAVA의 JVM과 비슷하며 앱 마스터와 태스크 두 유형이 존재

앱 마스터는 일단 조금 더 특별한 컨테이너라고 알아둡시다.

 

세부 리소스 관리가 가능한 범용 컴퓨팅 프레임웍

리소스 매니저
    - Job Scheduler, Application Manager
노드 매니저
컨테이너
    - 앱 마스터
    - 태스크

 

Spark이 이 위에서 구현됨

 

 

 

 

 

 

 

 

 

 

 

YARN의 동작

 

 

1. 실행 코드(와 환경 정보)를 RM에게 제출
2. RM이 NM을 통해 AM 실행
3. AM이 RM으로 코드에 실행에 필요한 리소스를 받아옴
4. AM이 NM을 통해 컨테이너들을 받아 코드 실행 (태스크)
5. 태스크들은 자신의 상황을 주기적으로 AM에게 업데이트 (heartbeat)

 

클라이언트는 맵리듀스 혹은 Spark가 될 수도 있습니다.

 

 

 

 

 

 

 

 

YARN의 동작

 

1. 실행하려는 코드와 환경 정보를 RM(Resource Manager)에게 넘김

i. 실행에 필요한 파일들은 application ID에 해당하는 HDFS 폴더에 미리 복사됨

 

2. RM은 NM(Node Manager)으로부터 컨테이너를 받아 AM(Application Master) 실행

i. AM은 프로그램 마다 하나씩 할당되는 프로그램 마스터에 해당

 

3. AM은 입력 데이터 처리에 필요한 리소스를 RM에게 요구

i. RM은 data locality를 고려해서 리소스(컨테이너)를 할당

 

4. AM은 할당받은 리소스를 NM을 통해 컨테이너로 론치하고 그 안에서 코드를 실행

i. 이 때 실행에 필요한 파일들이 HDFS에서 Container가 있는 서버로 먼저 복사

 

5. 각 태스크는 상황을 주기적으로 AM에게 보고 (heartbeat)

i. 태스크가 실패하거나 보고가 오랜 시간 없으면 태스크를 다른 컨테이너로 재실행

 

 

 

 

 

 

 

 

 

 

 

 

하둡 1.0 vs. 하둡 2.0

하둡 2.0에서 소개된 클러스터 자원 관리자를 YARN이라고 부름

http://bigdataanalyticsnews.com/hadoop-2-0-yarn-architecture/

 

 

 

 

 

 

 

 

 

 

하둡 3.0의 특징

 

YARN 2.0을 사용

  • YARN 프로그램들의 논리적인 그룹(플로우라고 부름)으로 나눠서 자원 관리가 가능. 이를 통해 데이터 수집 프로세스와 데이터 서빙 프로세스를 나눠서 관리 가능
  • 타임라인 서버에서 HBase를 기본 스토리지로 사용 (하둡 2.1)

 

파일 시스템

  • 내임노드의 경우 다수의 스탠바이 내임노드를 지원
  • HDFS, S3, Azure Storage 이외에도 Azure Data Lake Storage 등을 지원