Capacity Scheduler 佇列設定

2021-07-16 10:39:33 字數 3002 閱讀 5512

先附乙個官網位址

capacity scheduler是yarn中預設的資源排程器。

資源分配相關引數

(1) capacity:佇列的資源容量(百分比)。 當系統非常繁忙時,應保證每個佇列的容量得到滿足,而如果每個佇列應用程式較少,可將剩餘資源共享給其他佇列。

注意,所有佇列的容量之和應小於100。

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

(3) minimum-user

-limit

-percent:每個使用者最低資源保障(百分比)。任何時刻,乙個佇列中每個使用者可使用的資源量均有一定的限制。

當乙個佇列中同時執行多個使用者的應用程式時中,每個使用者的使用資源量在乙個最小值和最大值之間浮動,其中,最小值取決於正在執行的應用程式數目,

而最大值則由minimum-user

-limit

-percent決定。比如,假設minimum-user

-limit

-percent為25。當兩個使用者向該佇列提交應用程式時,每個使用者可使用資源量

不能超過50

%,如果三個使用者提交應用程式,則每個使用者可使用資源量不能超多33

%,如果四個或者更多使用者提交應用程式,則每個使用者可用資源量不能超過25

%。(4) user-limit

-factor:決定每個使用者可使用的資源是否可以超過佇列的資源,如果是1.2則表示可用的資源量是佇列資源的1.2倍。

限制應用程式數目相關引數

而單個佇列可通過引數yarn.scheduler.capacity.

<

queue

-path

>

(2) maximum-am

-resource

該引數型別為浮點型,預設是0.1,表示10

-resource

-percent設定

(可看做預設值),而單個佇列可通過引數yarn.scheduler.capacity.

<

queue

-path

>

. maximum-am

-resource

-percent設定適合自己的值。

佇列訪問和許可權控制引數

(1) state :佇列狀態可以為stopped或者running,如果乙個佇列處於stopped狀態,使用者不可以將應用程式提交到該佇列或者它的子佇列中,類似的,

如果root佇列處於stopped狀態,使用者不可以向集群中提交應用程式,但正在執行的應用程式仍可以正常執行結束,以便佇列可以優雅地退出。

即如果乙個使用者可以向某個佇列中提交應用程式,則它可以向它的所有子佇列中提交應用程式。配置該屬性時,

使用者之間或使用者組之間用「,」分割,使用者和使用者組之間用空格分割,比如「user1, user2 group1,group2」。

(3) acl_administer_queue:為佇列指定乙個管理員,該管理員可控制該佇列的所有應用程式,比如殺死任意乙個應用程式等。

同樣,該屬性具有繼承性,如果乙個使用者可以向某個佇列中提交應用程式,則它可以向它的所有子佇列中提交應用程式。

例項:

<?xml version="1.0"?>

yarn.scheduler.capacity.root.queuesname>

default,devvalue>

root佇列的所有子佇列description>

property>

yarn.scheduler.capacity.root.dev.capacityname>

60value>

dev佇列的資源容量description>

property>

yarn.scheduler.capacity.root.dev.maximum-capacityname>

75value>

dev佇列可使用的資源上限description>

property>

yarn.scheduler.capacity.root.dev.user-limit-factorname>

1value>

決定每個使用者可使用的資源是否可以超過佇列的資源description>

property>

yarn.scheduler.capacity.root.dev.minimum-user-limit-percentname>

20value>

每個使用者最低資源保障description>

property>

100value>

dev佇列最多可同時處於等待和執行狀態的應用程式數目description>

property>

yarn.scheduler.capacity.root.dev.maximum-am-resource-percentname>

0.1value>

dev佇列可用於執行am的資源比例上限,這通常用於限制併發執行的應用程式數目description>

property>

yarn.scheduler.capacity.root.dev.statename>

runningvalue>

dev佇列的狀態,可以是running或者stoppeddescription>

property>

yarn.scheduler.capacity.root.dev.acl_administer_queuename>

adminvalue>

為dev佇列指定管理員description>

property>

adminvalue>

限定哪些linux使用者/使用者組可以向dev佇列提交應用程式description>

property>

configuration>

Capacity Scheduler配置說明

mapred.capacity scheduler.queue.capacity 設定排程器中各個queue的容量,這裡指的是占用的集群的slots的百分比,需要注意的是,所有queue的該配置項加起來必須小於等於100,否則會導致jobtracker啟動失敗。mapred.capacity sch...

android layout weight設定解讀

參考文章 android layout weight的真實含義是 一旦view設定了該屬性 假設有效的情況下 那麼該 view的寬度等於原有寬度 android layout width 加上其在剩餘空間中的佔比!設螢幕寬度為l,在兩個view的寬度都為match parent的情況下,原有寬度為l...

Android RecyclerView設定空布局

1 自定義乙個emptyrecyclerview繼承recyclerview 2 採用adapterdataobserver觀察者模式來監聽資料的變化,如果有資料就隱藏空布局,反之,則顯示。view memptyview private adapterdataobserver emptyobserv...