Hadoop 스케줄러 적용

HadoopBeginner
지금 연습하기

소개

고대 이집트 땅에서 파라오의 궁전은 왕국의 권력과 번영을 웅장하게 증명하는 증거였습니다. 그러나 화려한 표면 아래에서는 위기가 싹트고 있었습니다. 나일강의 풍요로움으로 가득 찬 파라오의 거대한 창고는 혼란에 빠졌습니다. 자원 분배를 담당하는 사제들은 백성의 요구를 따라가는 데 어려움을 겪었습니다.

아멘호테프 (Amenhotep) 가 등장했습니다. 그는 왕국의 자원 질서를 회복하는 임무를 맡은, 뛰어난 젊은 사제였습니다. 그의 임무는 귀중한 물품을 공정하고 효율적으로 할당하여 모든 시민이 정당한 몫을 받을 수 있도록 보장하는 시스템을 개발하는 것이었습니다.

파라오는 아멘호테프의 지성과 헌신에 감명을 받아 최신 기술적 경이로움인 Hadoop YARN (Yet Another Resource Negotiator) 시스템에 대한 접근 권한을 부여했습니다. 이 강력한 도구를 마음대로 사용할 수 있게 된 아멘호테프는 자신의 목표를 달성하는 데 도움이 될 YARN 의 핵심 구성 요소인 Applying Scheduler 의 복잡성을 배우기 시작했습니다.

Hadoop YARN 스케줄러 이해

이 단계에서는 Hadoop YARN 에서 사용할 수 있는 다양한 스케줄링 정책과 해당 사용 사례를 살펴보겠습니다.

먼저, 사용자를 Hadoop 사용자로 전환해야 합니다.

su - hadoop

Hadoop YARN 은 두 가지 주요 스케줄링 정책을 지원합니다: Fair Scheduler 와 Capacity Scheduler 입니다. Fair Scheduler 는 여러 사용자 및 애플리케이션 간에 자원을 공정하게 공유하여 단일 사용자 또는 애플리케이션이 클러스터의 자원을 독점하지 않도록 하는 것을 목표로 합니다. 반면에 Capacity Scheduler 는 계층적 큐 관리 및 미리 정의된 용량 제한을 기반으로 한 자원 할당을 허용합니다.

현재 스케줄러 구성을 표시하려면 다음 명령을 사용하십시오.

yarn scheduler -getConf

이 명령은 현재 활성 스케줄러와 해당 구성을 보여줍니다.

Fair Scheduler 구성

이 단계에서는 왕국의 시민들 간에 공정한 자원 분배를 보장하기 위해 Fair Scheduler 를 구성합니다.

먼저, Fair Scheduler 를 위해 /home/hadoopfair-scheduler.xml이라는 새 구성 파일을 만듭니다.

<!-- /home/hadoop/fair-scheduler.xml -->
<?xml version="1.0"?>
<allocations>
  <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
  <queue name="root">
    <weight>1.0</weight>
    <queue name="citizens">
      <weight>1.0</weight>
      <minResources>1024 mb, 1 vcores</minResources>
    </queue>
    <queue name="priests">
      <weight>2.0</weight>
      <minResources>2048 mb, 2 vcores</minResources>
    </queue>
  </queue>
</allocations>

이 구성에서 citizenspriests의 두 개의 큐를 정의했습니다. citizens 큐는 가중치가 1.0 이고 최소 자원 할당은 1024MB 메모리 및 1 vcore 입니다. priests 큐는 가중치가 2.0 이고 최소 자원 할당은 2048MB 메모리 및 2 vcores 입니다.

다음으로, 다음 명령을 실행하여 새 구성을 적용합니다.

yarn scheduler --setConf /home/hadoop/fair-scheduler.xml

yarn scheduler -getConf 명령을 다시 실행하여 Fair Scheduler 가 이제 활성화되었는지 확인합니다.

Capacity Scheduler 구성

이 단계에서는 미리 정의된 용량 제한을 기반으로 자원을 할당하도록 Capacity Scheduler 를 구성합니다.

먼저, Capacity Scheduler 를 위해 /home/hadoop/capacity-scheduler.xml이라는 새 구성 파일을 만듭니다.

<!-- /home/hadoop/capacity-scheduler.xml -->
<?xml version="1.0"?>
<configuration>
  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>citizens,priests</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.citizens.capacity</name>
    <value>50</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.priests.capacity</name>
    <value>50</value>
  </property>
</configuration>

이 구성에서 citizenspriests의 두 개의 큐를 정의했습니다. 각 큐는 클러스터 자원의 50% 를 할당받습니다.

다음으로, 다음 명령을 실행하여 새 구성을 적용합니다.

yarn scheduler --setConf /home/hadoop/capacity-scheduler.xml

yarn scheduler -getConf 명령을 다시 실행하여 Capacity Scheduler 가 이제 활성화되었는지 확인합니다.

요약

이 랩에서는 Hadoop YARN 에서 다양한 스케줄링 정책을 구성하고 적용하여 자원 할당을 효과적으로 관리하는 방법을 배웠습니다. Fair Scheduler 와 Capacity Scheduler 를 숙달함으로써 Amenhotep 은 왕국의 시민들 간에 자원을 공정하게 분배하고 사제들이 수행하는 중요한 작업을 우선시할 수 있습니다.

이 실습 경험을 통해 Hadoop YARN 의 강력한 기능과 복잡한 환경에서 자원을 관리하는 능력에 대한 더 깊은 이해를 얻었습니다. 이 랩에서 얻은 지식을 적용하여 조직의 특정 요구 사항에 맞춰 효율적이고 공정한 자원 관리 시스템을 구축할 수 있습니다.