轉載備忘錄-hadoop-yarn-調度器

Capacity Schduler是YARN中默認的資源調度器。

在Capacity Scheduler的配置文件中,隊列queueX的參數Y的配置名稱爲yarn.scheduler.capacity.queueX.Y,爲了簡單起見,我們記爲Y,則每個隊列可以配置的參數如下:

1.資源分配相關參數

capacity:隊列的資源容量(百分比)。 當系統非常繁忙時,應保證每個隊列的容量得到滿足,而如果每個隊列應用程序較少,可將剩餘資源共享給其他隊列。注意,所有隊列的容量之和應小於100。

maximum-capacity:隊列的資源使用上限(百分比)。由於存在資源共享,因此一個隊列使用的資源量可能超過其容量,而最多使用資源量可通過該參數限制。

minimum-user-limit-percent:每個用戶最低資源保障(百分比)。任何時刻,一個隊列中每個用戶可使用的資源量均有一定的限制。當一個隊列中同時運行多個用戶的應用程序時中,每個用戶的使用資源量在一個最小值和最大值之間浮動,其中,最小值取決於正在運行的應用程序數目,而最大值則由minimum-user-limit-percent決定。比如,假設minimum-user-limit-percent爲25。當兩個用戶向該隊列提交應用程序時,每個用戶可使用資源量不能超過50%,如果三個用戶提交應用程序,則每個用戶可使用資源量不能超多33%,如果四個或者更多用戶提交應用程序,則每個用戶可用資源量不能超過25%。

user-limit-factor:每個用戶最多可使用的資源量(百分比)。比如,假設該值爲30,則任何時刻,每個用戶使用的資源量不能超過該隊列容量的30%。

2.限制應用程序數目相關參數

maximum-applications  :集羣或者隊列中同時處於等待和運行狀態的應用程序數目上限,這是一個強限制,一旦集羣中應用程序數目超過該上限,後續提交的應用程序將被拒絕,默認值爲10000。所有隊列的數目上限可通過參數yarn.scheduler.capacity.maximum-applications設置(可看做默認值),而單個隊列可通過參數yarn.scheduler.capacity.<queue-path>.maximum-applications設置適合自己的值。

maximum-am-resource-percent:集羣中用於運行應用程序ApplicationMaster的資源比例上限,該參數通常用於限制處於活動狀態的應用程序數目。該參數類型爲浮點型,默認是0.1,表示10%。所有隊列的ApplicationMaster資源比例上限可通過參數yarn.scheduler.capacity. maximum-am-resource-percent設置(可看做默認值),而單個隊列可通過參數yarn.scheduler.capacity.<queue-path>. maximum-am-resource-percent設置適合自己的值。

3.隊列訪問和權限控制參數

state         :隊列狀態可以爲STOPPED或者RUNNING,如果一個隊列處於STOPPED狀態,用戶不可以將應用程序提交到該隊列或者它的子隊列中,類似的,如果ROOT隊列處於STOPPED狀態,用戶不可以向集羣中提交應用程序,但正在運行的應用程序仍可以正常運行結束,以便隊列可以優雅地退出。

acl_submit_applications:限定哪些用戶/用戶組可向給定隊列中提交應用程序。需要注意的是,該屬性具有繼承性,即如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。

acl_administer_queue:爲隊列指定一個管理員,該管理員可控制該隊列的所有應用程序,比如殺死任意一個應用程序等。同樣,該屬性具有繼承性,如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。

一個配置文件實例如下:

<configuration>

  <property>

    <name>yarn.scheduler.capacity.maximum-applications</name>

    <value>10000</value>

    <description>最多可同時處於等待和運行狀態的應用程序數目</description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>

    <value>0.1</value>

    <description>集羣中可用於運行application master的資源比例上限,這通常用於限制併發運行的應用程序數目。</description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.queues</name>

    <value>default</value>

    <description>root隊列的所有子隊列,該實例中只有一個</description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.capacity</name>

    <value>100</value>

    <description>default隊列的資源容量</description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>

    <value>1</value>

    <description>

     每個用戶可使用的資源限制

    </description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>

    <value>100</value>

    <description>

      Default隊列可使用的資源上限.

    </description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.state</name>

    <value>RUNNING</value>

    <description>

     Default隊列的狀態,可以是RUNNING或者STOPPED.

    </description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>

    <value>*</value>

    <description>

      限制哪些用戶可向default隊列中提交應用程序.

    </description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>

    <value>*</value>

    <description>

限制哪些用戶可管理default隊列中的應用程序,“*”表示任意用戶

</description>

  </property>

 

  <property>

    <name>yarn.scheduler.capacity.node-locality-delay</name>

    <value>-1</value>

    <description>調度器嘗試調度一個rack-local container之前,最多跳過的調度機會,通常而言,該值被設置成集羣中機架數目,默認情況下爲-1,表示不啓用該功能。

    </description>

  </property>

</configuration>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章