[데이터엔지니어링] Part8 - Ch3. Yarn

nothingisme·2023년 11월 5일
0

❗️ 본 게시물은 패스트캠퍼스 강의 "한 번에 끝내는 데이터 엔지니어링 초격차 패키지 Online."을 기반으로 작성되었습니다.

1. What is Yarn?

❗️ 1️⃣ 실시간 대용량 처리, 2️⃣ 자원의 비용 효율화

  • Hadoop 2.0부터 CPU와 메모리로 MapReducing뿐만 아니라,대용량 Multi processing을 할 수 있도록 만들었다
  • 비용 절약
    • 사용하지 않으면 다른 어플리케이션이 자원 점유가능(cluster의 utilization)
    • 단일 클러스터에서 멀티 프로세싱 어플리케이션까지 모두 동작
    • 데이터 저장과 활용 작업을 같은 클러스터에서 동작

cf. Container

  • Separation of responsibility : Application의 로직에만 집중 가능
  • Workload portability : 인프라로부터 자유로운 편. 다양한 환경.
  • Application isolation : 다른 어플리케이션의 영향 없음

2. YARN Architecture

❗️ Yarn은 HDFS(storage)와는 독립적으로 application 구동 기능을 제공한다 ( cpu와 메모리 같은 컴퓨팅 리소스 할당 및 관리 )

Yarn High-Level Architecture

1️⃣ Resource Manager , 2️⃣ Application Master, 3️⃣ Node Managers 로 구성

  • 1️⃣ RM : 데이터 노드의 위치와 리소스 양 정보 관리
    -Schedular = only 리소스 할당
    -Applications Manager = 어플리케이션 리스트 관리. 컨테이너 선정. 실패시 재시작
  • 2️⃣ AM : 하나의 어플리케이션의 리소스 사용 조정
  • 3️⃣ NM : 클러스터에 리소스 제공, 컨테이너로 프로그램 실행

High-level workflow

1️⃣ client ▸ RM : 어플리케이션 요청. Application ID 할당
2️⃣ RM ▸ NM : AM 실행 요청
3️⃣ NM ▸ AM : JVM으로 AM 실행
4️⃣ AM ▸ RM : 필요한 리소스 요청, NM 목록 반환
5️⃣ AM ▸ NM : 컨테이너 실행 요청
6️⃣ NM ▸ Container : 어플리케이션 실행
7️⃣ 어플리케이션이 종료되어 AM이 종료되면 RM이 할당했던 리소스 해제

1️⃣ client ▸ RM : 어플리케이션 요청

  1. Client가 application ID 발급 요청
  2. RM이 발급된 ID와 함께 최대 리소스 정보 전달
  3. Client가 AM의 실행 위한 정보 전달
  4. Client가 어플리케이션 상태 요청
  5. 정상 등록된 경우, RM이 어플리케이션의 통계 정보 전달

2️⃣ RM ▸ NM : AM 실행 요청

  1. 어플리케이션 등록 및 AM용 컨테이너 요청
    1.5 Application Attempt ID를 큐에 등록
  2. 스케줄 등록 결과 알림
  3. 컨테이너 할당 요청
  4. 할당 후, 시작하도록 알림
  5. Application Master Launcher 실행
  6. AM Launcer 실행하고 컨테이너 정보 설정
  7. 컨테이너 실행 위해 필요한 정보와 함께 AM 실행 요청 전달
  8. 실행 결과 반환

3️⃣ NM ▸ AM : JVM으로 AM 실행

4️⃣ AM ▸ RM : 필요한 리소스 요청, NM 목록 반환

  1. AM 등록 요청
  2. AM 등록 후, 정보 반환
  3. 어플리케이션 실행에 필요한 리소스 할당 요청
    heartbeat 용도로 "periodically(주기적으로)" 실행
  4. 스케줄러가 처리 이후 응답 결과 반환

5️⃣ AM ▸ NM : 컨테이너 실행 요청

6️⃣ NM ▸ Container : 어플리케이션 실행

  1. 컨테이너 실행 요청
  2. 컨테이너 실행 후 응답 반환 (Metadata, Success/Fail)
  3. 컨테이너의 어플리케이션 상태 모니터링 ▸ "주기적으로" 실행!!
  4. 컨테이너 상태 반환

7️⃣ 어플리케이션이 종료되어 AM이 종료되면 RM이 할당했던 리소스 해제

  1. 종료 요청
  2. AM 해제 후 결과 반환
    ( 2 실행 전에 종료된다면 어플리케이션 재시도 )

3.7 Auxiliary Service

❗️ Map 작업 이후 Reduce로 전송할 데이터를 파티셔닝 및 전달
▸ Map 작업 이후 맵 태스크 컨테이너의 종료로 인한 데이터 삭제 방지

5. Yarn Architecture 심화

1️⃣ Resource Manager

2️⃣ Node Manager

profile
가볍게 재밌던 거 기록해요

0개의 댓글