IT 삽질기

YARN 스케줄링 본문

BigData/Hadoop

YARN 스케줄링

화이팅빌런 2021. 4. 19. 22:19

YARN 스케줄링

2019/06/10 - [BigData/Hadoop] - Hadoop 1.0과 Hadoop 2.0 (1 YARN)

 

Hadoop 1.0과 Hadoop 2.0 (1 YARN)

이번 글에서는 Hadoop 1.0과 Hadoop 2.0의 차이점에 대해서 간단하게 알아보도록 하자. Hadoop 버전에 따른 아키텍처를 비교해서 살펴보면 아래와 같다. Hadoop 2.0에서는 클러스터의 자원을 관리하기 위한 시스..

dydwnsekd.tistory.com

 

이전 글에서 YARN이 무엇인지에 대해 간단히 설명했다.

 

YARN은 Resource Manager과 Application Master, Node Manager등으로 구분되는데 이번에는 YARN에서 작업을 스케줄링하는 방식에 대해서 알아보도록 하자.

 

YARN은 요청받은 작업에 대해 자원을 할당하고 작업을 처리하게 하는데,

자원은 한정적이고 설정된 스케줄링옵션에 따라 자원을 분배할 것이다.

 

YARN에서 사용하는 스케줄러 옵션은 3가지이다.

1. FIFO

FIFO는 일반적으로 생각하는 그 FIFO로 먼저 들어온 요청을 처리하는 방식으로 동작한다.

FIFO 방식은 간단하지만, 대형 애플리케이션이 실행되는 경우 다른 애플리케이션이 실행될 수 없기 때문에 클러스터 환경에서는 적합하지 않다.

 

2. Capacity

Capacity 스케줄러는 전체 자원을 미리 할당한 후 할당 받은 자원을 사용하는 방식으로 동작하는데, 예를 들어 A사용자는 클러스터 자원의 30%를 할당받아 사용하고, B사용자는 70%를 할당받아 사용하는 방식으로 동작한다. 나눠진 큐 안에서는 FIFO 방식으로 동작하며, 이렇게 할당받아 사용하는 경우 A 사용자가 작업할 애플리케이션이 많아 큐가 밀리고 B 사용자는 사용하지 않는 경우 자원을 낭비하게 될 수 있는데 이런 경우에는 A 사용자가 남아있는 70%의 자원을 사용할 수 있게 하는 큐 탄력성이라는 개념이 존재해 자원을 비교적 효율적으로 사용할 수 있다.

 

3. Fair

Fair 스케줄러는 말 그래도 자원을 균등하게 분배하여 사용하는데, 전체 자원을 할당받아 사용할 수도 있고, 사용자별 할당량을 나눠사용할 수도 있다. 어떤 경우에서든 새로운 애플리케이션 작업이 들어오면 전체를 1/N하여 자원을 할당해 사용하게 되는데 예를 들어 A 애플리케이션만 실행되는 경우 A 애플리케이션이 자원의 100%를 사용하다가 B 애플리케이션이 중간에 실행되면 A 50% B 50% 이런식으로 자원을 할당한다. 위의 두가지 방법보다 클러스터의 효율성도 높고 작은 잡도 빨리 처리되는 효과가 있다

 

아래의 그림은 스케쥴링 방식을 그림으로 표현한 것이다.

 

출처 : https://wikidocs.net/22936

 

클러스터를 운영하는 경우 위의 3가지 방법중 꼭 하나만 선택해야하는 것은 아니다.

큐를 계층 구조로 만들어 각기 다른 스케쥴링 방식을 설정할 수 있다

 

root

ㄴ dev

ㄴ test

 

위와 같은 계층 구조를 만들어 각기 다른 스케쥴링 방식을 적용해 운영하는 것이 가능하다

 

Comments