본문 바로가기

카테고리 없음

[DE] Yarn - Yet Another Resource Negotiator

728x90
반응형

1. Yarn 이란?

Yarn(Yet Another Resource Negotiator)은 Hadoop 클러스터의 자원 관리와 잡 스케줄링을 담당하는 시스템
하둡분산자원관리 

 

2. 등장배경

Hadoop 1.0의 MRV1(MapReduce Version1)는 작업의 처리와 자원의 관리를 한번에 관리하였다.

즉, Single-Master 노드에 해당하는 job Tracker는 자원을 할당하고, 스케줄링 작업도 수행하며 처리중인 작업까지 모니터링을 하였다. 그리고 하위 노드에 해당하는 Task Tracker에 Map and Reduce 작업을 부여하였고, 하위 노드들은 주기적으로 그들의 진행상황을 Job Tracker에 보고하였다.

 

이러한 MRV1구조는 Task의 규모가 커짐에 따라, 하나 뿐인 Job Tracker에 부하가 걸리며 bottleneck이 발생할 뿐만 아니라 컴퓨터의 자원이 비효율적으로 사용된다는 것을 알게 되었다. 그리고 이러한 문제를 해결하기 위해 Hadoop 2.0에서는 YARN(Yet Another Resource Negotiator)을 추가하였는데, 자원관리 및 작업 스케줄링에 대한 책임을 Yarn에 인수하여 MapReduce이 경량화되었으며, MapReduce 이외의 작업을 Hadoop이 처리할 수 있게 해주었다.

그래서 Hadoop 2.0은 위와 같은 구조로 재탄생하게 되었고. Yarn은 HDFS에 저장된 데이터를 바탕으로 그래프 처리, 대화식 처리, 스트림 처리 및 일괄 처리와 같은 일들을 수행할 수 있게 해주었다. YARN을 바탕으로 실시간 처리를 위한 Spark, SQL 전용의 Hive, NoSQL 전용의 HBase등 다양한 도구를 사용할 수 있다.

3. 아키텍처

YARN 프레임워크는 데이터 연산을 위한 Resource Manager와 Node Manager로 구성되어 있다.

(1) 리소스 매니저(Resource Manager)

중앙에서 클러스터 내 모든 사용 가능한 자원을 모든 응용프로그램 간에 중재하는 역할을 담당

1) 스케줄러(Scheduler)
 -. Node Manager들의 자원 상태를 관리하며 부족한 리소스를 할당한다.

 -. 다양한 스케쥴링 알고리즘(FIFO, Capacity Scheduler, Fair Scheduler 등..)을 통해 자원을 할당
 -. Node Manager들의 자원 상태를 Resource Manager에게 통지

2) 애플리케이션 매니저(Application Manager)
 -. Node Manager에서 특정 작업을 위해 Application Manager를 실행하고, Application의 실행 상태를 관리하여 그 상태를 Resource Manager에게 통지한다.

(2) 노드 매니저(Node Manager)

노드별로 존재하며, 노드의 자원 사용량(CPU, 메모리, 디스크, 네트워크)을 모니터링하고, 리소스 매니저에 보고한다.

1) 애플리케이션 마스터
 -. 특정 애플리케이션의 실행과 모니터링, 리소스 요청 및 할당을 담당

2) 컨테이너
 -. 노드 매니저가 실행되는 서버의 시스템 자원(CPU, 메모리, 디스크, 네트워크)를 표현한다.
 -. 하나의 서버에는 여러 개의 컨테이너가 실행될 수 있다.

4. 동작방식

  1. 클라이언트는 애플리케이션 실행을 요청한다.
  2. 리소스 매니저가 노드 매니저에게 애플리케이션 마스터 실행을 요청한다.
  3. 노드 매니저는 컨테이너에서 애플리케이션 마스터를 실행한다.
  4. 애플리케이션 마스터는 리소스 매니저에게 실행에 필요한 리소스를 요청한다.
  5. 애플리케이션 마스터는 노드 매니저에게 컨테이너 실행을 요청한다.
  6. 노드 매니저는 컨테이너에서 해당 애플리케이션을 실행한다.
  7. 애플리케이션이 종료되면 애플리케이션 마스터가 종료되고, 리소스 매니저는 할당했던 리소스를 해제한다.

 

 

참고

[1] https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

[2] https://www.edureka.co/blog/hadoop-yarn-tutorial/

[3] https://subscription.packtpub.com/book/cloud-and-networking/9781784391737/6/ch06lvl1sec36/the-yarn-application-workflow

[4] https://wikidocs.net/22899

[5] https://mangkyu.tistory.com/127

[6] https://seoyeonhwng.medium.com/hadoop-yarn-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-3f209e901b3a

[7] https://opentutorials.org/module/2926/17248

[8] https://velog.io/@bbkyoo/%EC%8B%9C%EC%9E%91%ED%95%98%EC%84%B8%EC%9A%94-%ED%95%98%EB%91%A1-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-CH-8.-YARN-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%9D%98-%EC%9D%B4%ED%95%B4

 

 

728x90
반응형