フェアスケジューラーは、Apache YARN に組み込まれたスケジューラーです。 YARN で実行されるアプリケーションにリソースを均等に割り当てるために使用されます。 個々のキューで使用されるリソースは、設定された重みに基づいて割り当てられます。

フェアスケジューラの有効化

重要 [リソースキューの有効化] をオンにした後、YARN サービスページの [設定] タブにある、 [サービス設定] の [フェアスケジューラー] タブでデータを設定できなくなります。 既存の設定は、 [クラスターリソース] ページに同期されます。 YARN サービスページの [構成] タブでクラスターリソースを構成する場合、[クラスタリソース] ページで [リソースキューの有効化] をオフにします。




  1. 表示される [クラスターの概要] ページの左側のナビゲーションウィンドウで、 [クラスターリソース] をクリックします。
  2. 表示される [クラスターリソース] ページで、[リソースキューの有効化] をオンにします。
  3. [フェアスケジューラー] を選択します。
  4. [保存] をクリックします。

フェアスケジューラーの構成

[リソースキューの有効化] をオンにした後、次の手順に沿ってフェアスケジューラーを構成します。

  1. [クラスターリソース] ページで、右上隅の [キューの設定] をクリックします。
  2. [キューの設定] タブで、対象のキューを見つけて、[アクション] 列の [編集] をクリックします。

    [アクション] 列の [その他] ドロップダウンリストから [子キューの作成] を選択して、子キューを作成します。

    [root] はレベル 1 のキューです。 これは、すべての他のキューの親キューであり、YARN のすべてのリソースを管理します。 デフォルトで、root キュー配下ではdefault キューのみが使用できます。

    重要 キュー構成はネストされているため、親キューのパラメーターが子キューのパラメーターより優先されます。 子キューに構成されたリソース使用率が親キューのリソース使用率より高い場合、スケジューラーは親キューのパラメーター設定に基づいて子キューにリソースを割り当てます。
    • [キュー名] は必須項目です。 キュー名にピリオド (.) を含めることはできません。
    • [重み] は必須項目です。 重みのしきい値に達した場合、スケジューラーはリソースをキューに均等に割り当てます。 重みは、レベル 2、レベル 3、より深いレベルのキューで有効になります。 たとえば、親キューに、重みが 2 の子キューと、重みが 1 の子キューがあるとします。 2 つの子キューの両方に実行中のタスクがあり、リソース割り当て比率が 2:1 に達した場合、リソースは均等に割り当てられます。
    • [最大リソース] とは、キューに割り当て可能な vCore の最大数と最大メモリ容量を示します。 このパラメーターの値は、 [最小リソース] の値以上で、YARN サービスが提供可能なリソーススケール未満である必要があります。 最大リソースの値がリソーススケールより大きい場合、リソーススケールがキューに対して有効になります。 YARN サービスが提供できる vCore の数が 16 で、最大リソースの vCore の値が 20 であると想定します。 16 個の vCores がキューに割り当てられます。
    • アプリケーションの実行中にキューを指定しない場合、ジョブは default キューに送信されます。
    • 子キューの名前を変更後に ResourceManager を再起動しない場合でも、タスクを元のキューに送信できます。 ただし、EMR コンソールにキュー構成は表示されなくなります。 ResourceManager を再起動すると、元のキューは使用できなくなります。
    • レベル 2 のキューではないキューを削除後、 [デプロイ] をクリックして変更内容を確認します。 レベル 2 のキューを削除後、右上隅にある [アクション] ドロップダウンリストから [RestartResourceManager] を選択して、変更内容を確認します。

スケジューラータイプの切り替え

[リソースキューを有効化] をオンにした後、スケジューラーの種類を切り替えるには、次の手順を実行します。

  1. [クラスターリソース] ページで、右上隅の [スケジューラーを選択] をクリックします。
  2. 必要なスケジューラーを選択します。
  3. [保存] をクリックします。
  4. 右上隅から [アクション] ドロップダウンリストから [RestartResourceManager] を選択します。
  5. 表示される [クラスターアクティビティー] ダイアログボックスで、パラメーターを指定し、[OK] をクリックします。
  6. 表示される [確認] ダイアログボックスで、[OK] をクリックします。
    完了メッセージが表示されたら、スケジューラータイプが切り替わります。

ジョブの送信

[mapreduce.job.queuename] を使用して、ジョブを送信するキューを指定します。 例:
`hadoop jar /usr/lib/hadoop-current/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar pi -Dmapreduce.job.queuename=test  2 2`