Hadoop でのスケジューラの適用

HadoopBeginner
オンラインで実践に進む

はじめに

古代エジプトの国では、ファラオの宫殿が王国の力と繁栄の壮大な証として立っていました。しかし、黄金輝く表面の下には、危機が醸成されていました。ナイル川の恵みで満たされたファラオの巨大な倉庫は混乱していました。資源の分配管理を担当する祭司たちは、国民のニーズに追いつくのに苦労していました。

そこに、アメンホテプが登場しました。彼は若くて頭の良い祭司で、王国の資源を秩序立てることを任されました。彼の使命は、貴重な品物を公平かつ効率的に分配するシステムを開発し、すべての市民が彼らにふさわしい分を受け取ることを保証することでした。

アメンホテプの知性と献身に感銘を受けたファラオは、彼に最新の技術の驚異である Hadoop YARN(Yet Another Resource Negotiator)システムへのアクセスを許可しました。この強力なツールを手にして、アメンホテプは彼の目標を達成するのに役立つ YARN の重要なコンポーネントである Applying Scheduler の複雑さを学ぶために出発しました。

Hadoop YARN スケジューラを理解する

このステップでは、Hadoop YARN に利用可能なさまざまなスケジューリング ポリシーとそれぞれのユースケースを調べます。

まず、ユーザーを Hadoop ユーザーに切り替える必要があります。

su - hadoop

Hadoop YARN は、2 つの主なスケジューリング ポリシーをサポートしています。フェア スケジューラとキャパシティ スケジューラです。フェア スケジューラは、複数のユーザーとアプリケーション間で資源を公平に共有することを目的としており、単一のユーザーまたはアプリケーションがクラスタの資源を独占しないようにします。一方、キャパシティ スケジューラは、階層的なキュー管理と事前に定義されたキャパシティ制限に基づく資源割り当てを可能にします。

現在のスケジューラの設定を表示するには、次のコマンドを使用します。

yarn scheduler -getConf

このコマンドにより、現在アクティブなスケジューラとその設定が表示されます。

フェア スケジューラの設定

このステップでは、王国の市民間で公平な資源分配を確保するために、フェア スケジューラを設定します。

まず、フェア スケジューラ用に /home/hadoop 内に新しい設定ファイル fair-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>

この設定では、2 つのキュー citizenspriests を定義しています。citizens キューのウェイトは 1.0 で、最小資源割り当ては 1024 MB のメモリと 1 vcore です。priests キューのウェイトは 2.0 で、最小資源割り当ては 2048 MB のメモリと 2 vcore です。

次に、次のコマンドを実行して新しい設定を適用します。

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

再度 yarn scheduler -getConf コマンドを実行して、フェア スケジューラが現在アクティブであることを確認します。

キャパシティ スケジューラの設定

このステップでは、事前に定義されたキャパシティ制限に基づいて資源を割り当てるために、キャパシティ スケジューラを設定します。

まず、キャパシティ スケジューラ用に /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>

この設定では、2 つのキュー citizenspriests を定義しています。各キューには、クラスタの資源の 50% が割り当てられています。

次に、次のコマンドを実行して新しい設定を適用します。

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

再度 yarn scheduler -getConf コマンドを実行して、キャパシティ スケジューラが現在アクティブであることを確認します。

まとめ

この実験では、Hadoop YARN で異なるスケジューリング ポリシーを設定して適用し、効果的に資源割り当てを管理する方法を学びました。フェア スケジューラとキャパシティ スケジューラを習得することで、アメンホテプは王国の市民間での資源の公平な分配を確保し、祭司たちが行う重要なタスクを優先することができます。

この実践的な経験を通じて、Hadoop YARN の強力な機能と複雑な環境での資源管理能力に対する理解が深まりました。この実験から得た知識を応用することで、組織の特定のニーズに合わせた効率的で公平な資源管理システムを構築することができます。