Pivotal Knowledge Base

フォローする

フェアスケジューラにACLを設定する方法(PHD 2 / PHD 3)

環境

  • PHD 2.x
  • PHD 3.x

目的

本記事ではPHD 2.x及び3.xのフェアスケジューラに適用可能なACL設定の例を記述する。また、2.xと3.xの機能の違いについて記述する。フェアスケジューラの設定方法に関しては以下のリンクを参照のこと。

ACLの基礎情報

  • aclAdministerAppパラメーターはデフォルトとして「*」となっているので、全ユーザがジョブを実行したキューを自ら管理することができてしまう。そのため、aclSubmitApps を使用する場合は当該パラメーターを明示的に設定することが重要である。

PHD 2.xでフェアスケジューラのACLを使う方法

設定サンプル

<?xml version="1.0"?>
<allocations>
<queue name="queue1">
    <minResources>10000mb,10vcores</minResources>
    <maxResources>30000mb,30vcores</maxResources>
    <maxRunningApps>10</maxRunningApps>
    <weight>2.0</weight>
    <schedulingMode>fair</schedulingMode>
    <aclAdministerApps>gpadmin</aclAdministerApps>
    <aclSubmitApps>gpadmin</aclSubmitApps>
</queue>
</allocations>

この設定で、gpadmin以外のユーザが「queue1」キューにアプリケーションを投入しようとすると次のエラーが出る。

sudo -u postgres hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi -Dmapreduce.job.queuename=queue1 100 100

15/07/10 12:04:18 INFO mapreduce.Job: Job job_1436555033060_0001 failed with state FAILED due to: User postgres cannot submit applications to queue root.queue1

PHD 3.xでエアスケジューラのACLを使う方法

<?xml version="1.0"?>
<allocations>
<queue name="root">
<aclSubmitApps>gpadmin</aclSubmitApps>
<aclAdministerApps>gpadmin</aclAdministerApps>
<queue name="queue1">
    <minResources>10000mb,10vcores</minResources>
    <maxResources>30000mb,30vcores</maxResources>
    <maxRunningApps>10</maxRunningApps>
    <weight>2.0</weight>
    <schedulingMode>fair</schedulingMode>
    <aclAdministerApps>gpadmin</aclAdministerApps>
    <aclSubmitApps>gpadmin</aclSubmitApps>
</queue>
</queue>
</allocations>

この設定で、gpadmin以外のユーザが「queue1」のキューにアプリケーションを投入しようとすると次のエラーが出る。

sudo -u postgres hadoop jar /usr/phd/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi -Dmapreduce.job.queuename=queue1 100 100


java.io.IOException: Failed to run job : User postgres cannot submit applications to queue root.queue1

PHD 3.xでは次の注意点と機能強化がある。

  • Ambariはフェアスケジューラをサポートしていない。ユーザが手動でyarn-site.xmlを編集してフェアスケジューラを設定しても、Resource Managerの起動・停止などAmbariの通常操作でその設定を上書きしてしまう。
  • PHD 3.xではフェアスケジューラはサポートされていない。推奨スケジューラはキャパシティスケジューラである。
  • PHD 2.xでは root キューの設定ができないので、ACLの設定に支障が生じることがあった。PHD 3.x ではこの制限に対する機能強化が行われた(YARN-1258)。
  • ユーザによりしばしば要望された、ジョブ投入ユーザに応じたキューへの自動ルーティングを可能とする機能強化がPHD 3.xに対して行われた(YARN-2257)。

コメント

Powered by Zendesk