Hadoop的調度器總結_Hadoop

來源:互聯網
上載者:User
隨著MapReduce的流行,其開源實現Hadoop也變得越來越受推崇。在Hadoop系統中,有一個組件非常重要,那就是調度器,它的作用是將系統中閒置資源按一定策略分配給作業。在Hadoop中,調度器是一個可插拔的模組,使用者可以根據自己的實際應用要求設計調度器。Hadoop中常見的調度器有三種,分別為:

(註:本文介紹的Hadoop調度器不夠系統化,如果想瞭解更系統化的Hadoop調度器,可閱讀我的最新書籍《Hadoop技術內幕:深入解析MapReduce架構設計與實現原理》(購買說明)第10章 “Hadoop多使用者作業調度器分析”,分析了當前比較流行的FIFO、Capacity個Fair三種調度器的配置方法、實現機制和優缺點對比,當然,也介紹了其他類型的幾種調度器。)

(1)預設的調度器FIFO

Hadoop中預設的調度器,它先按照作業的優先順序高低,再按照到達時間的先後選擇被執行的作業。

(2) 計算能力調度器Capacity Scheduler

支援多個隊列,每個隊列可配置一定的資源量,每個隊列採用FIFO調度策略,為了防止同一個使用者的作業獨佔隊列中的資源,該調度器會對同一使用者提交的作業所佔資源量進行限定。調度時,首先按以下策略選擇一個合適隊列:計算每個隊列中正在啟動並執行任務數與其應該分得的計算資源之間的比值,選擇一個該比值最小的隊列;然後按以下策略選擇該隊列中一個作業:按照作業優先順序和提交時間順序選擇,同時考慮使用者資源量限制和記憶體限制。

(3)公平調度器Fair Scheduler

同計算能力調度器類似,支援多隊列多使用者,每個隊列中的資源量可以配置,同一隊列中的作業公平共用隊列中所有資源,具體演算法參見我的博文《Hadoop公平調度器演算法解析》

實際上,Hadoop的調度器遠不止以上三種,最近,出現了很多針對新型應用的Hadoop調度器。

(4)適用於異構叢集的調度器LATE

現有的Hadoop調度器都是建立在同構叢集的假設前提下,具體假設如下:

1)叢集中各個節點的效能完全一樣

2)對於reduce task,它的三個階段:copy、sort和reduce,用時各佔1/3

3)同一job的同類型的task是一批一批完成的,他們用時基本一樣。

現有的Hadoop調度器存在較大缺陷,主要體現在探測落後任務的演算法上:如果一個task的進度落後於同類型task進度的20%,則把該task當做落後任務(這種任務決定了job的完成時間,需盡量縮短它的執行時間),從而為它啟動一個備份任務(speculative task)。如果叢集異構的,對於同一個task,即使是在相同節點上的執行時間也會有較大差別,因而在異構叢集中很容易產生大量的備份任務。

LATE(Longest Approximate Time to End,參考資料[4])調度器從某種程度上解決了現有調度器的問題,它定義三個閾值:SpeculativeCap,系統中最大同時執行的speculative task數目(作者推薦值為總slot數的10%); SlowNodeThreshold(作者推薦值為25%):得分(分數計算方法見論文)低於該閾值的node(快節點)上不會啟動speculative task;SlowTaskThreshold(作者推薦值為25%):當task進度低於同批同類task的平均進度的SlowTaskThreshold時,會為該task啟動speculative task。它的調度策略是:當一個節點出現空閑資源且系統中總的備份任務數小於SpeculativeCap時,(1)如果該節點是慢節點(節點得分高於SlowNodeThreshold),則忽略這個請求。 (2)對當前正在啟動並執行task按估算的剩餘完成時間排序 (3)選擇剩餘完成時間最大且進度低於SlowTaskThreshold的task,為該task啟動備份任務。

(5)適用於即時作業的調度器Deadline Scheduler和Constraint-based Scheduler

這種調度器主要用於有時間限制的作業(Deadline Job),即給作業一個deadline時間,讓它在該時間內完成。實際上,這類調度器分為兩種,軟即時(允許作業有一定的逾時)作業調度器和硬即時(作業必須嚴格按時完成)作業調度器。

Deadline Scheduler(參考資料[5])主要針對的是軟即時作業,該調度器根據作業的運行進度和剩餘時間動態調整作業獲得的資源量,以便作業儘可能的在deadline時間內完成。

Constraint-based Scheduler(參考資料[6])主要針對的是硬即時作業,該調度器根據作業的deadline和當前系統中的即時作業運行情況,預測新提交的即時作業能不能在deadline時間內完成,如果不能,則將作業反饋給使用者,讓他重調整作業的deadline。

————————————————————————————————————————–

參考資料:

【1】    Capacity Scheduler 介紹:http://hadoop.apache.org/common/docs/r0.19.2/capacity_scheduler.html

下載:http://hadoop.apache.org/common/docs/r0.20.0/capacity_scheduler.pdf

【2】    Fair Scheduler 介紹:http://hadoop.apache.org/common/docs/r0.20.2/fair_scheduler.html

下載:http://svn.apache.org/repos/asf/hadoop/mapreduce/trunk/src/contrib/fairscheduler/designdoc/fair_scheduler_design_doc.pdf

【3】    Fair Scheduler 論文:M. Zaharia, D. Borthakur, J. S. Sarma, K. Elmeleegy, S. Shenker, and I. Stoica, “Job scheduling for multi-user mapreduce clusters,” EECS Department, University of California, Berkeley, Tech. Rep., Apr 2009.

【4】   Matei Zaharia, Andy Konwinski, Anthony D. Joseph, Randy Katz, Ion Stoica “Improving MapReduce Performance in Heterogeneous Environments,”

【5】    Deadline Scheduler 論文:J. Polo, D. Carrera, Y. Becerra, J. Torres, E. Ayguade and, M. Steinder, and I. Whalley, “Performance-driven task co-scheduling for mapreduce environments,” in Network Operations and Management Symposium (NOMS), 2010 IEEE, 2010, pp. 373 –380.

【6】    Constraint-based Scheduler 論文K. Kc and K. Anyanwu, “Scheduling hadoop jobs to meet deadlines,” in 2nd IEEE International Conference on Cloud Computing Technology and Science (CloudCom), 2010, pp. 388 –392.

原創文章,轉載請註明: 轉載自董的部落格

本文連結地址: http://dongxicheng.org/mapreduce/hadoop-schedulers/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.