前向hadoop提交的任務數越來越多, 任務的執行是按照fifo的預設排程演算法執行的,這樣會造成一些任務,即使只有1,2個map或reduce,獨佔資源的現象,因此改為公平排程演算法。
cdh hadoop 0.20.2+320 的hadoop lib目錄已經包含公平排程演算法的包。如果沒有應該從$hadoop_home/contrib/fairscheduler目錄下,把那個jar包(我在這裡是hadoop-fairscheduler-0.20.2+320.jar)複製到lib目錄下。然後修改配置檔案:
1。在mapred-site.xml 中將
mapred.jobtracker.taskscheduler
org.apache.hadoop.mapred.jobqueuetaskscheduler
the class responsible for scheduling the tasks.
改為mapred.jobtracker.taskscheduler
org.apache.hadoop.mapred.fairscheduler
the class responsible for scheduling the tasks.
2。在mapred-site.xml 中加入:
mapred.fairscheduler.allocation.file
/usr/local/hadoop/conf/pools.xml
3。建立/usr/local/hadoop/conf/pools.xml
檔案內容:
<?xml version="1.0"?>
105
6 3
其中 6
規定使用者root可同時執行的job數量;
10 5
規定這個池的最小map和reduce數量;3
規定未指定使用者可提交的最大job數量;
完全公平排程
cfs定義了一種新的模型,它給執行佇列中的每個程序都設定了乙個虛擬時鐘,即vruntime。如果乙個程序被排程器投入執行,隨著時間的增長,其vruntime將不斷增大,而沒有得到執行的程序vruntime則不會發生變化。排程器總是選擇vruntime最小的那個程序來執行,這就是所謂的 完全公平 為了...
完全公平排程 cfs
現代os都會把時間用 當量quanta 來表示。這樣的單位有助於對不同任務的管理和排程。os version tick freqency linux2.4 100hz linux2.6 above 100,250,300 or1000hz 更高的os具有可選的tick頻率,這種配置一般在開始階段配置...
Linux 完全公平排程器
讀書筆記,linux 系統程式設計 第六章高階程序管理 linux排程器為完全公平排程器,簡稱為cfs。和最近華為鴻蒙提出的確定時延排程相反。完全公平排程器和傳統的unix排程器有很大的區別。在大多數unix系統中,包括引入cfs之前的linux系統,在程序排程中存在兩個基本的基於程序的因素 優先順...