[HADOOP] YARN 스케줄러

yozzum·2023년 10월 7일
0

Spark

목록 보기
3/21

  1. FIFO Scheduler
  • 애플리케이션을 큐에 하나씩 넣고 제출된 순서에 따라 순차적으로 실행한다.
  • 단순하지만 공유 클러스터 환경에서는 부적합하다.
  1. Capacity Scheduler
  • 자원을 나누어 큐로 나누고, Job이 제출되면 지정된 큐의 자원을 활용해서 실행한다.
  • 활용되고 있지 않은 큐에 대해서는 IDLE 상태의 자원이 존재하기에 전체 클러스터의 효율성은 떨어진다.
  1. Fair Scheduler
  • 실행중인 모든 Job의 자원을 동적으로 분배한다.
  • 대형 Job의 경우 클러스터의 모든 자원을 얻을 수 있다.
  • 대형 Job이 실행되는 도중에 작은 Job이 추가로 시작되면 페어 스케줄러는 클러스터 자원의 절반을 이 Job에 해당한다. ex. 대형 Job이 사용하고 있는 컨테이너의 자원이 완전히 해제될 때까지 기다리긴 해야한다.
  • 작은 Job이 끝나면 대형 Job은 다시 클러스터의 전체 자원을 활용할 수 있게 된다.

※ Capacity Scheduler

  • 회사의 조직체계에 맞게 가용량을 지정해서 각 조직은 그들만의 queue를 할당 받는다.
  • queue는 2단계 이상의 계층 구조로 분리될 수 있으므로 세부조직에 대해서도 나눌 수 있다.
  • 단일 큐 내부에 있는 애플리케이션들은 FIFO 방식으로 스케줄링 된다.
  • 큐 안에 다수의 잡이 존재하고 현재 가용할 수 있는 자원이 클러스터에 남아있다면 해당 큐에 있는 잡을 위해 여분의 자원을 할당할 수 있다. (queue의 가용량 초과) 이런 방식을 queue 탄력성이라고 한다.
  • 다른 큐의 가용량을 너무 많이 잡아먹지 않도록 큐에 최대 가용량을 설정할 수 있다.
profile
yozzum

0개의 댓글