1)変更スケジューラFairScheduler
から
Hadoopの分布は(ClouderaのデフォルトのスケジューラとしてFairScheduler
を使用して)デフォルトでCapacityScheduler
を使用します。
フェアスケジューラは、ユーザーごとにキューを作成default
キューを設定しyarn-site.xml
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
2)にこのプロパティを追加します。すなわち、3人の異なるユーザがジョブをサブミットした場合、3つの個々のキューが作成され、リソースは3つのキュー間で共有される。これは、すべてのジョブが単一default
キューに入ることを保証するyarn-site.xml
<property>
<name>yarn.scheduler.fair.user-as-default-queue</name>
<value>false</value>
</property>
でこのプロパティを追加することによって、それを無効にします。
3)次に、ジョブキューが1つのdefault
キューに限定されていることを最大のアプリケーション
を制限します。そのキューで実行できるアプリケーションの最大数を1
に制限します。
は$HADOOP_CONF_DIR
下fair-scheduler.xml
という名前のファイルを作成し、また、これらのエントリに
<allocations>
<queueMaxAppsDefault>1</queueMaxAppsDefault>
</allocations>
を追加し、これらのプロパティを追加した後yarn-site.xml
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>$HADOOP_CONF_DIR/fair-scheduler.xml</value>
</property>
再起動YARN
サービスでこのプロパティを追加します。複数のアプリケーションを提出するで
、ACCEPTED
最初アクティブなアプリケーションとみなされ、残りされるアプリケーションは、保留中のアプリケーションのようにキューに入れられます。これらの保留中のアプリケーションは、RUNNING
アプリケーションがFINISHED
になるまで、引き続きACCEPTED
状態になります。アクティブなアプリケーションは利用可能なすべてのリソースを利用できます。
参考:Hadoop: Fair Scheduler
がどのように多くの異なるユーザのジョブを提出することでしょうか? – franklinsijo
@franklinsijo 2人または3人のユーザー、同時に最大3つのジョブを提出しました – AdamSkywalker