999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

差異化作業調度在Storm上的實現

2017-02-27 03:11:15陳伯雄艾中良
軟件 2017年1期
關鍵詞:分配作業資源

陳伯雄,艾中良

(華北計算技術研究所,北京 100083)

差異化作業調度在Storm上的實現

陳伯雄,艾中良

(華北計算技術研究所,北京 100083)

作業調度一直是大數據技術研究的熱點,關于分布式集群上的調度優化的探討一直沒有停過。本文對比分析對比靜態分配調度、均勻分配調度、資源感知調度和就近調度算法,提出差異化作業調度管理技術,并把它應用到分布式實時處理系統Storm當中。經過實驗驗證,該調度算法能對Storm集群中不同作業任務,進行差異化管理。

作業調度;Storm;分布式計算;大數據

本文著錄格式:陳伯雄,艾中良. 差異化作業調度在Storm上的實現[J]. 軟件,2017,38(1):77-80

0 引言

作業調度一直是大數據技術研究的重點,通常分布式平臺會有自己的一套默認調度邏輯算法,一個好的調度算法能夠平衡考量系統的穩定性、性能和負載均衡[1]。作業調度問題始于計算資源有限,不可能同時滿足所有作業任務。在單機計算時代,多個任務同時競爭CPU、內存、磁盤IO等資源,所以出現了CPU輪轉調度、內存LRU算法這些算法,而在大數據時代,單臺機器已經無法支撐作業,作業運行在計算集群中,這時候需要競爭的還有網絡帶寬等資源[2]。作業調度是通過調度算法,合理地有限的計算資源分配給不同的計算任務,一個好的調度算法需要同時考量系統的穩定性、性能和負載均衡。現有的流計算框架都有一套自己的通用作業調度算法[3-4],一般情況下是能夠滿足應用需求的,而差異化作業調度問題則在于,現實生產環境中作業需求復雜多樣,而現有調度算法調度策略單一;流計算應用開發者對底層組件開發比較熟悉,能夠針對具體應用場景從網路、存儲等方面進行優化,現有調度算法調度并不能滿足這種差異化作業的需求[5]。所以差異化作業調度問題其實是一般作業調度策略上更加高級的需求。

本文將研究靜態分配調度、均勻分配調度、資源感知調度和就近調度算法,提出差異化作業調度管理技術,并把它應用到分布式實時處理系統Storm當中,最后通過實驗驗證,該調度算法能對Storm集群中不同作業任務,進行差異化管理。

1 當前流式處理框架對作業管理方法

1.1 靜態分配調度策略

靜態分配是指應用在啟動之前和運行期間,占用的資源保持不變。或者對某種類型的任務分配固定資源占用。例如,給單個計算任務1 CPU邏輯內核,2G內存空間,20G磁盤空間或者將服務器資源的60%用于在線服務,40%用于離線服務,使得資源總和不超過各自的比例上限。這些應用在執行過程中幾乎不悔進行規格調整,是一種靜態的調度策略。

1.2 動態均勻分配調度策略

把集群可用的資源抽象出來,將計算資源盡可能均勻的分配到各個計算任務上。Storm的默認調度算法就是基于這種思想實現的。均勻的將每個組件(spout/bolt)的線程(組件并行度)分配到集群中的各個節點。舉個例子,一個集群有三個節點,node1有三個worker,node2有兩個worker,node3有一個worker。當用戶提交一個計算拓撲(該拓撲需要4個worker,1個spout,一個bolt,spout/bolt各占2個線程,共有4個task,每個占用一個worker計算資源)。則Storm會把spout1、bolt1調度到node1,spout2調度到node2,bolt1調度到node3。通過這種策略,可以使得任務比較均勻的與計算資源進行綁定,其缺點是,如果node3掛掉,它會按照當前調度策略重新把bolt1調度給node1,這種簡單均勻分配策略可能會造成局部不均衡。

1.3 資源感知調度策略

其核心算法是分析每個工作節點中各類資源的使用情況,然后根據這些資源的使用情況將工作任務調度到到合適的節點上。對于系統資源一般可以用CPU使用率、內存占用、磁盤、網絡等進行細粒度劃分。簡單的資源感知調度策略只求局部優化,比如,針對CPU密集型的任務組件,會將它的處理單元優先分配到CPU空閑資源多的節點上;針對內存密集型的任務組件,會將它的處理單元優先分配到內存空閑資源多的節點上;針對磁盤需求密集型的任務組件,可能會將它的處理單元優先分配到磁盤資源多的節點上。復雜的資源感知調度策略需要對各項資源進行綜合評估,給每一項任務每個資源計算權重,然后按照綜合資源評分給搶占資源和任務排序,最后將按照順序把資源分配給計算任務。再進一步則需要負載預測,根據CPU利用率、Memory消耗、Disk消耗,磁盤、網絡IO,甚至DB IO這些歷史數據中,多維度對應用、應用實例層面分別給出面向不同時間片大小的預測值,其實是非常具有挑戰的事情[6]。數據規模、采集的并發實時性,噪聲和突發流量甚至限流等,都對模型的響應時間、模型的準確率提出了很高的要求。因為錯誤的預測可能導致意想不到的調度影響,負載預測和業務關聯起來,甚至和能源消耗、成本關聯起來,除了趨勢評估,還可以幫助決策。由此對數據的協同分析,也需要專業的團隊進行跟進。總的來說,資源感知調度策略是一種業務依賴程度高、實現復雜、效果難以預測的高級調度策略。

1.4 就近調度策略

就近調度策略,而是一種流計算圖優化策略[7],其核心思想是減少中間狀態,減少數據遷移等帶來的開銷以提高性能。它的調度思路是將有直接數據傳輸關系的任務盡可能分配到一起,分配到同一個節點上減少網絡傳輸造成的延時,甚至可能分配到同一個工作進程,減少網絡通信、減少任務數據傳輸中序列化和反序列化帶來的額外開銷,從而提高流計算引擎的吞吐量并有效降低整體延遲。就近調度策略,也是目前業界性能優化很大的一個方向,比如國內阿里巴巴開源的JStorm,會試圖將兩個需要通訊的線程盡量放在一個worker中來減少網絡的傳輸。

1.5 現有的調度策略存在的問題

靜態分配調度策略是一種靜態的悲觀的調度策略,有點在于能夠有效限制系統資源的占用,缺點是需要提前規劃,缺乏靈活性,不適用于復雜的應用場景;動態均勻分配調度策略彌補了靜態分配調度策略的缺點,能夠根據機器集群當前狀態動態調整調度方案,使得計算任務盡可能均勻的利用空閑的集群資源,缺點是沒有考慮不同作業之間存在差異[8],例如資源占用類型比例不同,只是簡單的把作業調度“平均”分配到集群;資源感知調度策略考略到了作業之間的差異,但是其實現復雜,效果與業務類型,負載感知,甚至和能源消耗、成本關聯起來,在實際操作上一般只求局部優化,對某種類型的資源占用進行優化;就近調度策略,能有效降低延遲,但是對集群負載均衡缺乏關注,可能會造成某些機器滿負荷而其它機器空載。

2 本文采用的差異化作業調度管理技術

本文分析已有調度技術的優缺點,在已有技術的基礎上形成差異化作業調度策略,希望在系統穩定性、性能、負債均衡之間取得一個平衡。該策略主要受動態均勻分配調度策略和就近調度策略影響,在整體上實現負載均衡,在局部利用就近調度,需要實現用戶自定義分配方式從而差異化管理了作業。依據如下:現實生產環境中作業需求復雜多樣,而現有流計算引擎調度算法調度策略單一,單一調度策略不能適應不同的需求;流計算應用開發者對底層組件開發比較熟悉,能夠針對具體應用場景從網路、存儲等方面實現就近調度優化,解決業務瓶頸,現有調度算法調度并不能滿足這種差異化作業的需求。該策略的應用場景包含:將不同組件放在同一工作節點中來達到替代DRPC的目的,比如task1->task2-task3->task4,把我們可以把task1與task4放到一個工作節點中,這樣task4的結果就能直接返回給task1;將上下游的組件放在一起,避免網絡傳輸;強制將一個組件運行分配到一個特定的機器上,減少數據在網絡中遷移,減低帶寬負載,例如,我們可以將一個操作數據庫的組件強制分配到數據庫所在的機器上;強制一個組件的不同線程運行在不同的機器中,實現業務隔離;允許用戶也可以選擇只對部分任務進行自定義分配,剩下其他還是使用默認的分配方式。使用差異化作業調度管理技術就能靈活處理不同業務場景,提高實時計算系統的通用性。本文擬基于開源流式計算引擎Storm進行研究開發,差異化作業調度管理技術。

3 差異化作業調度管理技術在Storm平臺上的實現

3.1 具體實現過程

在Storm中,Nimbus根據默認調度程序將任務分配給Supervisor,默認調度器期望能把計算資源均勻地分配給拓撲任務[9],因此就公平性而言,Storm默認的調度策略運轉良好,但是對于流處理應用開發者而言,用戶不可能預測出Storm集群中拓撲組件運行的位置。又因為不同拓撲任務之間天然就存在差異性,簡單的把計算資源均勻地分配給拓撲任務實際上并不能有效地利用集群資源,特別在多節點部署過程中,不個節點的計算能力、計算資源、計算場景很可能也并不相同,在這些角度上分析,允許用戶將特定拓撲組件分配給位于特定的計算節點是非常重要的。因此,在Storm上開發者需要一種更加靈活的調度機制,增強用戶對集群中運行的拓撲任務的掌控能力,以利于優化某些業務處理性能。

實現作業差異化調度最核心的問題是了解調度器是如何工作的以及如何獲取集群信息,其中涉及理解Storm平臺的調度流程和與它相關的數據結構。首先從第一個問題出發,調度器是如何工作的,Nimbus服務器啟動實例化了scheduler,在用戶提交了拓撲之后,nimbus服務執行了mk-assignments方法,其中調用了scheduler的schedule方法,完成資源分配,schedule是其核心實現;schedule方法的默認傳參類型是Topologies和Cluster類型,從中我們可以獲取所有拓撲信息(TopologyDetails)以及所有工作節點信息(SupervisorDetails),由于Storm中元數據是由thrift定義的,我們可以從storm.thrift文件中找到SupervisorDetails中與調度相關的數據元祖map scheduler_meta,是一個KV鍵值對,因此我們可以指定自己的元數據以操作不同的工作節點。在0.8.0版本發布后,Storm提供了可插拔調度器(Pluggable scheduler),以便用戶自定義自己的調度策略。自定義調度器需要實現IScheduler接口中prepare方法和schedule方法,prepare方法用于在服務器啟動時初始化scheduler實例,隨后在每次執行調度任務時執行schedule方法,因此我們可以更加方便的實現自己的調度邏輯了,具體實現如下:

(1)在Supervisor端config/storm.yaml實現自己的元數據,比如:

(2)實現IScheduler接口,給出核心代碼:配置信息,如果組件配置信息與工作節點元數據相匹配,則把計算資源分配給組件

完成調度程序后,我們需要將其打包到一個jar文件,放在Storm服務器$STORM_HOME/lib/路徑下

(3)在Nimbus端config/storm.yaml加入配置:

3.2 結果檢驗

建立拓撲

拓撲期望實現spout1運行在host1 Supervisor上,bolt2運行在運行在host2 Supervisor上,bolt3運行在host1 Supervisor上,拓撲結構如圖1:

圖1 實驗拓撲任務

訪問Storm UI,executor id[4-4] [2-2] [3-3]分別代表spout1、bolt2、bolt3組件,實驗結果如圖2。

可以看到調度器拓撲成功將特定組件分配到特定節點host1、host2、host上。

圖2 實驗結果展示

4 總結

本章首先描述了差異化作業調度管理問題,接著分析了現有分布式作業調度策略的優點和不足,接著提出本文的差異化作業調度管理技術,并解釋了它相對現有調度策略的優點及其應用場景。最后在Storm上實現差異化作業調度,并用檢驗結果。

[1] 趙春燕. 云環境下作業調度算法研究與實現[D][J]. 北京:北京交通大學, 2009.

[2] Shieh C K, Huang S W, Sun L D, et al. A topology-based scaling mechanism for Apache Storm[J]. International Journal of Network Management, 2016.

[3] 陳若飛, 姜文紅. Hadoop 作業調度本地性的研究與優化[J]. 軟件, 2015, 36(2): 64-68

[4] 詹文濤, 艾中良, 劉忠麟, 等. 一種基于YARN 的高優先級作業調度實現方案[J]. 軟件, 2016, 37(3): 84-88

[5] 龍少杭. 基于Storm的實時大數據分析系統的研究與實現[D]. 上海交通大學, 2015.

[6] Peng B, Hosseini M, Hong Z, et al. R-Storm: Resource-Aware Scheduling in Storm[C]// ACM MIDDLEWARE '15 Proceedings of the, ACM MIDDLEWARE Conference. ACM, 2015: 149-161.

[7] 陳廷偉, 張斌, 郝憲文. 基于任務-資源分配圖優化選取的網格依賴任務調度[J]. 計算機研究與發展, 2007, 44(10): 1741-1750.

[8] Long S, Rao R, Miao W, et al. An improved topology schedule algorithm for storm system[C]//Computer Science and Applications: Proceedings of the 2014 Asia-Pacific Conference on Computer Science and Applications (CSAC 2014), Shanghai, China, 27-28 December 2014. CRC Press, 2015: 187.

[9] 李川, 鄂海紅, 宋美娜. 基于Storm的實時計算框架的研究與應用[J]. 軟件, 2014, 35(10): 16-20

Implementation of Differentiated Job Scheduling on Storm

CHEN Bo-xiong, AI Zhong-liang

(North China Institute of Computing Technology, Beijing 100083, China)

Job scheduling has always been a hot topic in the research of large data technology. The research on scheduling optimization on distributed clusters has not stopped. This paper compares and contrasts the static scheduling, the uniform allocation scheduling, the resource aware scheduling and the nearest scheduling algorithm, puts forward the differentiated job scheduling management technology and applies it to the distributed real-time processing system Storm. Experiments show that the proposed algorithm can perform differentiated management of different tasks in the Storm cluster.

Scheduling; Storm; Distributed Computing; Big Data

TP311

A

10.3969/j.issn.1003-6970.2017.01.016

國家基金項目

陳伯雄(1992-),男,研究生,主要研究方向:大數據、軟件技術;艾中良(1971-),男,研究員級高級工程師,主要研究方向:網格計算、信息共享及信息安全。

猜你喜歡
分配作業資源
基礎教育資源展示
快來寫作業
一樣的資源,不一樣的收獲
應答器THR和TFFR分配及SIL等級探討
遺產的分配
一種分配十分不均的財富
資源回收
績效考核分配的實踐與思考
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
作業
故事大王(2016年7期)2016-09-22 17:30:08
主站蜘蛛池模板: 97精品国产高清久久久久蜜芽| 91区国产福利在线观看午夜| 国产精品第一区| 99精品伊人久久久大香线蕉| 精品国产香蕉伊思人在线| 亚洲成人黄色网址| 久久成人18免费| 九色综合视频网| 免费在线成人网| 91在线视频福利| 日韩精品成人网页视频在线| 不卡午夜视频| 91福利片| 国产欧美日韩一区二区视频在线| 少妇精品网站| 亚洲有无码中文网| 在线观看国产精品一区| 99热这里只有精品2| www欧美在线观看| 日韩美一区二区| a免费毛片在线播放| 国产精品浪潮Av| 黄色网站在线观看无码| 亚洲侵犯无码网址在线观看| 2018日日摸夜夜添狠狠躁| 亚洲天堂视频网站| 亚洲天堂精品视频| 亚洲国产成人久久77| 国产精品偷伦视频免费观看国产 | 制服丝袜无码每日更新| 丁香五月亚洲综合在线| www.99精品视频在线播放| 国产美女精品在线| 婷婷久久综合九色综合88| 亚洲精品福利视频| 潮喷在线无码白浆| 国产女人在线观看| 99视频国产精品| 国产一级毛片高清完整视频版| 福利在线不卡| 色哟哟国产精品一区二区| 欧美亚洲中文精品三区| 亚洲中字无码AV电影在线观看| 亚洲精品无码抽插日韩| 成人午夜网址| 欧美劲爆第一页| 一级片一区| 69视频国产| 婷婷成人综合| 国产成年女人特黄特色毛片免| 啊嗯不日本网站| 亚洲无码视频一区二区三区| 精品国产aⅴ一区二区三区| 日本午夜三级| 国产精品女人呻吟在线观看| 另类专区亚洲| 久久精品亚洲专区| 亚洲最黄视频| 亚洲欧美精品日韩欧美| 免费国产一级 片内射老| 国产三级毛片| 免费一级大毛片a一观看不卡| 成人av专区精品无码国产| 欧美视频在线不卡| 国产在线无码一区二区三区| 久久国产精品77777| 午夜免费视频网站| 国产成人精品2021欧美日韩| 国产美女无遮挡免费视频网站| 广东一级毛片| 欧美日韩午夜| 色九九视频| 中美日韩在线网免费毛片视频| 亚洲中文字幕av无码区| 青青草原国产精品啪啪视频| 亚洲国模精品一区| 亚洲动漫h| 欧美特级AAAAAA视频免费观看| 国产人人干| 在线观看免费人成视频色快速| 亚洲精品国产乱码不卡| 国产第一福利影院|