先附乙個官網位址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...