Capacity 排程器配置
<property> <name>yarn.resourcemanager.scheduler.class<name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> </property>
載入配置檔案
$yarn rmadmin -refreshQueues
Root --- QueueA --- A1, A2
|-- QueueB --- B1, B2
|-- QueueC --- C1, C2
佇列
<property> <name>yarn.scheduler.capacity.root.queues<name> <value>QueueA, QueueB, QueueC</value> </property> <property> <name>yarn.scheduler.capacity.QueueA.queues<name> <value>A1, A2</value> </property>
佇列訪問許可權控制
<property> <name>yarn.scheduler.capacity.root.QueueA.acl_submit_applications<name> <value>u1, u2 g1</value> <description>限定哪些Linux使用者/使用者組可向給定佇列中提交應用程式</description> </property> <property> <name>yarn.scheduler.capacity.root.QueueA.acl_administer_queue<name> <value>g1</value> <description>為佇列指定一個管理員,該管理員可控制該佇列的所有應用程式,比如殺死任意一個應用程式等</description> </property>
層級佇列Capacity管理
<property> <name>yarn.scheduler.capacity.root.QueueA.capacity<name> <value>60</value> </property> <property> <name>yarn.scheduler.capacity.root.QueueB.capacity<name> <value>10</value> </property> <property> <name>yarn.scheduler.capacity.root.QueueC.capacity<name> <value>30</value> </property> <property> <name>yarn.scheduler.capacity.root.QueueA.A1.capacity<name> <value>20</value> </property> <property> <name>yarn.scheduler.capacity.root.QueueA.A2.capacity<name> <value>80</value> </property>
佇列A1不能超過父佇列queueA的40%的資源。
<property> <name>yarn.scheduler.capacity.root.QueueA.A1.maximum-capacity<name> <value>40</value> </property>
佇列的狀態
<property> <name>yarn.scheduler.capacity.root.QueueB.state<name> <value>RUNNING</value> </property>
應用程式限制
<property> <name>yarn.scheduler.capacity.maximum-applications<name> <value>10000</value> <description>叢集同時執行的最大作業數</description> </property> <property> <name>yarn.scheduler.capacity.root.QueueA.maximum-applications<name> <value>10000</value> <description>佇列root.QueueA同時執行的最大作業數</description> </property>
<property> <name>yarn.scheduler.capacity.maximum-am-resource-percent<name> <value>0.1</value> <description>AM所佔資源最大比例,用來控制同時執行的作業數</description> </property> <property> <name>yarn.scheduler.capacity.root.QueueA.maximum-am-resource-percent<name> <value>0.1</value> <description>AM所佔資源最大比例,用來控制佇列root.QueueA同時執行的作業數</description> </property>