一種基于MapReduce的負載自適應(yīng)任務(wù)調(diào)度方法
【專利摘要】本發(fā)明公開了一種基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,包括:(1)動態(tài)監(jiān)測Hadoop集群負載狀態(tài),(2)動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中產(chǎn)生的軟件信息,(3)動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中的硬件信息,(4)匯總步驟(1)、步驟(2)及步驟(3)中采集的集群各執(zhí)行節(jié)點的負載監(jiān)控信息、軟件監(jiān)控信息以及硬件監(jiān)控信息三方監(jiān)控信息,建模計算集群各執(zhí)行節(jié)點的計算能力,(5)執(zhí)行集群負載預警功能,并根據(jù)集群各執(zhí)行節(jié)點計算能力進行智能任務(wù)調(diào)度。本發(fā)明解決了Hadoop現(xiàn)有調(diào)度器對集群資源感知度低、任務(wù)分配不合理的問題,提供了一種能夠負載自適應(yīng)的、更科學有效的任務(wù)調(diào)度方案。
【專利說明】-種基于MapReduce的負載自適應(yīng)任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于分布式并行計算領(lǐng)域,具體而言是一種基于MapReduce的負載自適應(yīng) 的任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002] 隨著大數(shù)據(jù)與互聯(lián)網(wǎng)時代來臨,數(shù)據(jù)呈幾何級爆炸式增長,給傳統(tǒng)的分布式存儲 和計算系統(tǒng)帶來了極大挑戰(zhàn),一種更簡化的分布式并行計算模型一Hadoop MapReduce應(yīng)運 而生。MapReduce是一種分布式的用于處理海量數(shù)據(jù)集的并行編程系統(tǒng),其框架是由一個主 控節(jié)點和多個執(zhí)行節(jié)點共同組成,主控節(jié)點通常會把輸入的數(shù)據(jù)集切分為若干獨立的數(shù)據(jù) 塊,即將作業(yè)劃分為固定粒度大小的子任務(wù),分配給多個執(zhí)行節(jié)點并發(fā)執(zhí)行,以提高集群吞 吐率。因此,MapReduce的任務(wù)調(diào)度策略直接影響Hadoop集群的資源利用率、系統(tǒng)執(zhí)行效 率。
[0003] 現(xiàn)有的Hadoop調(diào)度技術(shù)主要有以下四種:①FIFO調(diào)度器(First In First Out): FIFO為Hadoop默認的調(diào)度器,其按照作業(yè)的優(yōu)先級高低以及到達時間的先后選擇被執(zhí) 行的作業(yè);②公平調(diào)度器:支持多隊列多用戶,每個隊列中的資源量可以配置,同一隊列 中的作業(yè)公平共享隊列中所有資源;③計算能力調(diào)度器:支持多隊列,每個隊列可配置一 定的資源量,每個隊列采用FIFO調(diào)度策略,為了防止同一個用戶的作業(yè)獨占隊列中的資 源,該調(diào)度器會對同一用戶提交的作業(yè)所占資源量進行限定;④HOD調(diào)度器(Hadoop On Demand) :H0D調(diào)度器在一個共享物理集群上管理若干個Hadoop集群,以滿足不同用途。
[0004] 已有的Hadoop任務(wù)調(diào)度策略雖然十分多樣化,但在集群實際運行中仍存在很明 顯的缺陷。一方面,Hadoop集群中各執(zhí)行節(jié)點的綜合計算能力存在較大差異,此處計算能 力不僅指各節(jié)點的硬件環(huán)境差異,還包括節(jié)點在執(zhí)行任務(wù)過程中表現(xiàn)出的執(zhí)行能力的不同 (軟件信息),因此常規(guī)的靜態(tài)任務(wù)分配方案無法感知不同節(jié)點的異構(gòu)性,會降低系統(tǒng)計算 資源的利用率、影響作業(yè)的執(zhí)行效率。
[0005] 另一方面,在當前互聯(lián)網(wǎng)環(huán)境下,互聯(lián)網(wǎng)服務(wù)層出不窮,同一個數(shù)據(jù)中心同時可能 運行著不同類型的負載,不同負載對系統(tǒng)資源的需求量也是不同的:如統(tǒng)計值計算、垃圾數(shù) 據(jù)分析等CPU密集型作業(yè)對CPU資源需求高,而數(shù)據(jù)挖掘、機器學習等I/O密集型作業(yè)則對 磁盤資源需求高。然而,現(xiàn)有的任務(wù)調(diào)度算法沒有考慮針對不同類型負載采取不同的調(diào)度 方法,這樣的做法存在一定弊端:大量CPU密集型的任務(wù)調(diào)度到集群同一個工作節(jié)點,則該 節(jié)點的I/O資源就沒有得到充分利用。在這種忽略負載具體類型的統(tǒng)一調(diào)度方式下,任務(wù) 分配的不合理性、各節(jié)點資源的不均衡使用均有可能導致系統(tǒng)執(zhí)行效率低下。
[0006] 綜上所述,Hadoop目前已有的大部分任務(wù)調(diào)度策略對系統(tǒng)的監(jiān)控不全面,缺乏對 集群運行過程中實時負載類型以及軟件信息的監(jiān)測,無法準確識別節(jié)點計算能力的異構(gòu) 性,從而導致集群資源感知度低、任務(wù)分配不合理、系統(tǒng)整體性能下降。
【發(fā)明內(nèi)容】
[0007] 針對現(xiàn)有MapReduce任務(wù)調(diào)度技術(shù)的缺陷,本發(fā)明的目的在于提供一種基于集群 節(jié)點計算能力評估體系、負載自適應(yīng)的任務(wù)調(diào)度方案,旨在解決目前已有任務(wù)策略導致的 集群資源感知度低、系統(tǒng)性能差的問題。本發(fā)明提供了一種基于MapReduce的負載自適應(yīng) 任務(wù)調(diào)度方案,其具體步驟如下:
[0008] (1)動態(tài)監(jiān)測Hadoop集群負載狀態(tài);
[0009] (2)動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中產(chǎn)生的軟件信息,包括任務(wù)執(zhí)行 成功率、任務(wù)推測執(zhí)行失敗次數(shù)、投放任務(wù)平均等待時間以及執(zhí)行任務(wù)平均響應(yīng)時間;
[0010] (3)動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中產(chǎn)生的硬件信息,包括節(jié)點CPU、 內(nèi)存、I/O以及網(wǎng)絡(luò)使用情況;
[0011](4)匯總步驟(1)、步驟⑵以及步驟(3)中采集到的集群各執(zhí)行節(jié)點的負載監(jiān)控 信息、軟件監(jiān)控信息以及硬件監(jiān)控信息三方監(jiān)控信息,建模計算集群各執(zhí)行節(jié)點的計算能 力;
[0012] (5)執(zhí)行集群負載預警功能,并根據(jù)集群各執(zhí)行節(jié)點計算能力進行智能任務(wù)調(diào)度。
[0013] 其中,所述步驟(1)具體包括以下子步驟:
[0014] (1-1)集群負載類型監(jiān)聽:動態(tài)提取集群各執(zhí)行節(jié)點在監(jiān)控時間間隔內(nèi)平均cpu 使用率以及i〇操作比,利用樸素貝葉斯分類器,判定當前集群負載類型;
[0015] (1-2)集群負載壓力狀態(tài)監(jiān)聽:集群負載壓力狀態(tài)分為三種:超負荷擴容型、輕負 荷收縮型以及自適應(yīng)調(diào)度型。其中,超負荷擴容型表示集群各執(zhí)行節(jié)點滿負荷運行、負載壓 力大、系統(tǒng)執(zhí)行效率低,需緊急擴容以緩解集群壓力;輕符合收縮型表示集群節(jié)點過剩、系 統(tǒng)資源浪費,為使系統(tǒng)節(jié)能運行,移除之前為緊急擴容加入的節(jié)點;自適應(yīng)調(diào)度型表示當前 系統(tǒng)運行健康、穩(wěn)定,無需擴容或者收縮。
[0016] 在集群運行過程中,動態(tài)提取集群節(jié)點平均負載(IoacLaverage)以及一秒內(nèi) i〇操作平均所占比(i〇_util),根據(jù)步驟(1-1)得出的當前集群負載類型選擇系統(tǒng)變量 (load_average或者io_util)判定集群負載壓力狀態(tài),具體分為,當集群類型為CPU密集型 時,集群負載壓力狀態(tài)判定方法為:
[0017]
【權(quán)利要求】
1. 一種基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征在于,包括以下步驟: (1) 動態(tài)監(jiān)測Hadoop集群負載狀態(tài); (2) 動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中產(chǎn)生的軟件信息,包括任務(wù)執(zhí)行成功 率、任務(wù)推測執(zhí)行失敗次數(shù)、投放任務(wù)平均等待時間以及執(zhí)行任務(wù)平均響應(yīng)時間四項; (3) 動態(tài)監(jiān)測集群各執(zhí)行節(jié)點在執(zhí)行任務(wù)過程中產(chǎn)生的硬件信息,包括節(jié)點CPU、內(nèi) 存、I/O以及網(wǎng)絡(luò)使用情況; (4) 匯總步驟(1)、步驟(2)以及步驟(3)中采集到的集群各執(zhí)行節(jié)點的負載監(jiān)控 信息、軟件監(jiān)控信息以及硬件監(jiān)控信息三方監(jiān)控信息,建模計算集群各執(zhí)行節(jié)點的計算能 力; (5) 執(zhí)行集群負載預警功能,并根據(jù)集群各執(zhí)行節(jié)點計算能力進行智能任務(wù)調(diào)度。
2. 根據(jù)權(quán)利要求1所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征在于, 所述步驟(3)中動態(tài)監(jiān)測集群硬件信息方法,是通過集群分布式監(jiān)控系統(tǒng)實現(xiàn)。
3. 根據(jù)權(quán)利要求1或2所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征 在于,所述步驟(1)中,具體包括如下子步驟: (1-1)集群負載類型監(jiān)聽:動態(tài)提取集群各執(zhí)行節(jié)點在監(jiān)控時間間隔內(nèi)平均cpu使用 率及i〇操作比,利用貝葉斯分類器,判定當前集群負載類型; (1-2)集群負載壓力狀態(tài)監(jiān)聽:動態(tài)提取集群運行過程中集群節(jié)點平均負載(load_average)以及一秒內(nèi)io操作平均所占比(io_util),根據(jù)當前集群所屬負載類型選擇系 統(tǒng)變量(l〇ad_average或者io_util)來判定集群負載壓力狀態(tài),具體包括:當集群負載為 CPU密集型時,集群負載壓力狀態(tài)判定方法為:
其中,Hadoop_Feature代表集群負載壓力狀態(tài),γ、δ為設(shè)定閾值的上、下限,l〇ad_average代表集群平均系統(tǒng)負載;如果load_average高于設(shè)定的閾值上限Y,則判定當前 集群負載屬于超負荷擴容型;如果IoacLaverage低于設(shè)定的閾值下限δ,則判定當前集 群負載屬于輕符合收縮型;如果IoacLaverage在設(shè)定閾值的上、下限之間,則判定當前集 群屬于負載自適應(yīng)調(diào)度型;閾值上、下限根據(jù)集群機器平均cpu核數(shù)而定,閾值下限δ取 0. 2*η,閾值上限γ取η,其中η為集群機器平均CPU核數(shù); 當集群負載為I/O密集型時,集群負載壓力狀態(tài)判定方法為:
其中,Hadoop_Feature代表集群負載壓力狀態(tài),β、α為設(shè)定閾值的上、下限,i〇_util代表集群一秒內(nèi)平均i〇操作所占比;如果i〇_util高于設(shè)定的閾值上限β,則判定當前集 群負載屬于超負荷擴容型;如果i〇_util低于設(shè)定的閾值下限α,則判定當前集群負載屬 于輕符合收縮型;如果i〇_util在設(shè)定閾值的上、下限之間,則判定當前集群負載屬于自適 應(yīng)調(diào)度型; 當集群負載為混合型時,集群負載壓力狀態(tài)判定需同時考慮系統(tǒng)平均負載l〇ad_average以及io操作平均所占比io_util。
4. 根據(jù)權(quán)利要求3所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征在于, 所述步驟(1-1)中使用樸素貝葉斯分類器,所述步驟(1-1)具體包括以下步驟: (1-1-1)離線分類器訓練: 設(shè)類別集合C= {cpu密集型負載,io密集型負載,混合型負載},待分類負載X={cpu利用率cpuUtil,io操作比ioUtil}; 運行多種類型的負載訓練樣本,動態(tài)采集集群監(jiān)控時間段內(nèi)負載特征屬性cpuUtil、ioUtil,計算每個類別在訓練樣本中的出現(xiàn)頻率:P(cpu密集型)、P(io密集型)和P(混 合型),以及每個特征屬性劃分對每個類別的條件概率估計:P(cpuUtilIcpu密集型負載)、 P(i〇UtilIcpu密集型負載)、P(cpuUtilIio密集型負載)、P(i〇UtilIio密集型負載)、 P(cpuUtilI混合型負載)和P(ioUtilI混合型負載),并將結(jié)果記錄; (1-1-2)負載在線分類=Hadoop集群啟動后,對于一個運行中的待分類負載X,監(jiān)控服 務(wù)器端動態(tài)獲取集群各執(zhí)行節(jié)點平均cpu利用率以及io操作比,得到負載特征向量X= {cpuUtil,ioUtil},并按如下貝葉斯公式計算該負載后驗概率P(CiIx): P(Ci|x) =P(XlCi)P(CiVPU) =P(Ci)TIPUiICiVP(X),ie[1,3]; 以上公式中,由于分母對所有類別均為常數(shù),因此有max{P(Ci|x)} =HiaxiP(Ci)P(XiICi)},ie[1,3],計算比較后,具有最大后驗概率的類Ci即為該待分類負載所屬的類。
5. 根據(jù)權(quán)利要求1或2所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征 在于,所述步驟(2)中動態(tài)監(jiān)測集群軟件信息方法,是通過在Hadoop中植入自定義監(jiān)控代 碼實現(xiàn),包括在監(jiān)控時間間隔內(nèi)獲取節(jié)點執(zhí)行任務(wù)的成功率、任務(wù)推測執(zhí)行的失敗次數(shù)、投 放任務(wù)平均等待時間以及執(zhí)行任務(wù)的平均響應(yīng)時間四項。
6. 根據(jù)權(quán)利要求1或2所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征 在于,所述步驟(4)具體包括如下子步驟: (4-1)離線訓練模型:綜合考慮節(jié)點在監(jiān)控時間間隔內(nèi)的負載、軟件以及硬件監(jiān)控信 息,按如下評估模型公式確定集群執(zhí)行節(jié)點的綜合計算能力: Node_ResTime=β〇+β(TaskSucRate) +β2F2 (TaskSpekilledTimes) +β3F3 (WaitTime)+β4F4 (Cpuutil) +β5F5(Memutil)+β6F6 (Diskutil) +β7F7 (Netutil)+C 式中,Node_ResTime代表監(jiān)控時間間隔內(nèi)執(zhí)行節(jié)點執(zhí)行任務(wù)的平均響應(yīng)時間,TaskSucRate代表監(jiān)控時間間隔內(nèi)執(zhí)行節(jié)點執(zhí)行任務(wù)的成功率,TaskSpekilledTImes代 表推測執(zhí)行失敗的任務(wù)數(shù),WaitTime代表投放新任務(wù)的平均等待時間,CpuUtil代表監(jiān)控 時間間隔內(nèi)CPU的利用率,MemUtil代表內(nèi)存利用率,DiskUtil代表磁盤利用率,NetUtil 代表網(wǎng)絡(luò)利用率;C為預先需要考慮的其他因素對節(jié)點計算能力優(yōu)先級的影響的函數(shù); β!、β2、β3、β4、@5、@6、@7分別為函數(shù)F1 (TaskSucRate)、F2 (TaskSpekilledTimes)、 F3 (WaitTime)、F4 (Cpuutil)、F5 (Memutil)、F6 (Diskutil)以及F7 (Netutil)對應(yīng)的權(quán)重; 針對不同類型的代表性負載,離線收集集群運行過程中提取出的各執(zhí)行節(jié)點三方監(jiān)測 歷史信息,采用多元線性回歸模型進行訓練、建模,從而得出在CPU密集型、I/O密集型以及 混合型負載狀態(tài)下對應(yīng)的計算能力模型參數(shù); (4-2)在線模型計算:根據(jù)步驟(1)中得出的集群負載類型選擇對應(yīng)的計算能力評估 模型進行建模;如果當前集群負載狀態(tài)為CPU密集型,則調(diào)用CPU密集型負載對應(yīng)的模型參 數(shù)代入計算;如果當前集群負載狀態(tài)為I/O密集型,則調(diào)用I/O密集型負載對應(yīng)的模型參數(shù) 代入計算;否則,調(diào)用混合型負載對應(yīng)的模型參數(shù)進行代入計算。
7.根據(jù)權(quán)利要求1或2所述的基于MapReduce的負載自適應(yīng)的任務(wù)調(diào)度方法,其特征 在于,所述步驟(5)具體包括;當集群負載狀態(tài)處于超負荷擴容型,立刻增加節(jié)點;當集群 負載處于輕符合收縮型,移除之前擴容新增的節(jié)點;當集群正常、穩(wěn)定運行,開始負載自適 應(yīng)調(diào)度,根據(jù)當前集群各執(zhí)行節(jié)點的計算能力大小進行動態(tài)任務(wù)拉取,計算能力越優(yōu)異的 節(jié)點拉取更多的任務(wù),計算能力相對弱的執(zhí)行節(jié)點則適當拉取少量任務(wù)。
【文檔編號】G06F9/50GK104317658SQ201410555053
【公開日】2015年1月28日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】王芳, 馮丹, 楊靜怡, 吳雪瑞 申請人:華中科技大學