Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法
【專利摘要】本發(fā)明涉及高性能集群領(lǐng)域的任務(wù)調(diào)度方法,Hadoop的每個(gè)工作節(jié)點(diǎn)通過(guò)作業(yè)提交階段的解析后,獲取到符合任務(wù)的實(shí)際階段權(quán)值,通過(guò)幾何平均值方法的處理后,為該作業(yè)的其余任務(wù)建立階段權(quán)值的參考標(biāo)準(zhǔn);在任務(wù)反饋階段,該作業(yè)的其余任務(wù)采用所述參考標(biāo)準(zhǔn),結(jié)合子階段的進(jìn)度對(duì)任務(wù)剩余執(zhí)行時(shí)間進(jìn)行估計(jì);在作業(yè)反饋階段,將所有任務(wù)的階段權(quán)值用分段的方式求取幾何平均值,并建立作業(yè)名-階段權(quán)值映射記錄,作為該節(jié)點(diǎn)上后續(xù)作業(yè)執(zhí)行的參考。本發(fā)明能夠在多作業(yè)并行執(zhí)行的環(huán)境下分別對(duì)各個(gè)作業(yè)的任務(wù)進(jìn)行自主學(xué)習(xí)和信息反饋,獲得更精確的階段權(quán)值估計(jì),提高任務(wù)剩余執(zhí)行時(shí)間預(yù)估的準(zhǔn)確性,進(jìn)而提高落后任務(wù)選擇的命中率,促進(jìn)集群資源的優(yōu)化利用。
【專利說(shuō)明】Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及高性能集群領(lǐng)域的任務(wù)調(diào)度方法,具體涉及一種在Hadoop多作業(yè)環(huán)境下基于任務(wù)自主學(xué)習(xí)和信息反饋機(jī)制的任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002]MapReduce是一個(gè)針對(duì)大規(guī)模的數(shù)據(jù)密集型應(yīng)用的并行數(shù)據(jù)處理模型。Hadoop作為MapReduce的一個(gè)開(kāi)源實(shí)現(xiàn),已經(jīng)被廣泛采用于各個(gè)領(lǐng)域。然而,既有的Hadoop具有很大的局限性,因?yàn)樗拈_(kāi)發(fā)原理最初針對(duì)的是同構(gòu)環(huán)境,默認(rèn)的調(diào)度機(jī)制也是基于節(jié)點(diǎn)同構(gòu)和任務(wù)線性執(zhí)行的假設(shè)進(jìn)行設(shè)計(jì)的,但是實(shí)際的應(yīng)用中,由于硬件配置的差異、資源虛擬化等原因都無(wú)法滿足這些假設(shè)。
[0003]通常,一個(gè)Hadoop集群是由許多常規(guī)的計(jì)算機(jī)構(gòu)成的,這些機(jī)器按照主/從模式進(jìn)行部署,選舉一個(gè)作為主節(jié)點(diǎn),其余的作為從節(jié)點(diǎn),在主節(jié)點(diǎn)上部署作業(yè)處理器,負(fù)責(zé)作業(yè)和任務(wù)的調(diào)度分配;而從節(jié)點(diǎn)上部署任務(wù)處理器,負(fù)責(zé)任務(wù)的調(diào)度和執(zhí)行。對(duì)于一個(gè)
MapReduce計(jì)算,包括兩個(gè)部分-Map任務(wù)和Reduce任務(wù)。當(dāng)一個(gè)作業(yè)從客戶端提交到
Hadoop集群時(shí),將會(huì)被分割成M個(gè)分片,Hadoop為每個(gè)片段創(chuàng)建Map任務(wù)。分配到Map任務(wù)的節(jié)點(diǎn)首先從相應(yīng)的輸入數(shù)據(jù)塊讀入內(nèi)容,解析輸入塊的鍵/值對(duì),然后執(zhí)行用戶自定義的Map函數(shù),獲得中間鍵值對(duì),Hadoop根據(jù)中間鍵進(jìn)行排序,輸出到本地磁盤,同時(shí)根據(jù)Reduce任務(wù)數(shù)按鍵進(jìn)行分組。Reduce任務(wù)在Shuffle階段從所有已執(zhí)行過(guò)Map任務(wù)的工作節(jié)點(diǎn)讀取數(shù)據(jù),當(dāng)Reduce任務(wù)讀取完所有的中間數(shù)據(jù)后也需要按鍵進(jìn)行排序,最后,調(diào)用用戶自定義的Reduce函數(shù)得到最終輸出。因此,Map任務(wù)又分成Map和Sort兩個(gè)子階段,Reduce任務(wù)劃分成Shuffle, Sort和Reduce三個(gè)子階段。
[0004]MapReduce作業(yè)的Map任務(wù)和Reduce任務(wù)都是并行執(zhí)行的,所有任務(wù)都完成了,這個(gè)作業(yè)才真正完成,因此一個(gè)作業(yè)的完成時(shí)間取決于最晚完成的那個(gè)任務(wù)。為了避免慢任務(wù)拖延作業(yè)的完成時(shí)間,研究者們相繼提出了推測(cè)執(zhí)行落后任務(wù)的思想以及各種改進(jìn)方法。經(jīng)對(duì)現(xiàn)有技術(shù)文檔的檢索發(fā)現(xiàn),這些方法主要圍繞如何有效識(shí)別落后任務(wù)以及為落后任務(wù)選擇何種節(jié)點(diǎn)展開(kāi)的。在識(shí)別落后任務(wù)方面,有人提出了估算最長(zhǎng)剩余時(shí)間的方法,即預(yù)測(cè)每個(gè)任務(wù)到執(zhí)行結(jié)束需要的時(shí)間,當(dāng)剩余時(shí)間最長(zhǎng)的任務(wù)的進(jìn)度低于平均閾值時(shí),就為其啟動(dòng)備份任務(wù)。因此,研究點(diǎn)又轉(zhuǎn)移到對(duì)最長(zhǎng)剩余時(shí)間的估算上,由于任務(wù)執(zhí)行過(guò)程是非線性的,而不同作業(yè)的各個(gè)子階段又因執(zhí)行程序和可用資源的的不同而有較大差異。部分方法將各階段的時(shí)間比例設(shè)置成更接近某種任務(wù)的固定值,雖然在一定程度上達(dá)到了改進(jìn)的目的,但是局限性不言而喻,對(duì)于不同任務(wù),該值沒(méi)有參考價(jià)值,即使同一任務(wù),在可用資源不同的情況下,實(shí)際權(quán)值也是相異的;因此產(chǎn)生了動(dòng)態(tài)調(diào)整階段權(quán)值的方法,以前面任務(wù)的信息作為參考,更新階段權(quán)值,但是該方法在多作業(yè)多任務(wù)同時(shí)執(zhí)行的情況下會(huì)產(chǎn)生較大的抖動(dòng)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種在Hadoop多作業(yè)環(huán)境下基于任務(wù)執(zhí)行特性和當(dāng)前資源環(huán)境等相關(guān)因素考慮的任務(wù)調(diào)度方法。
[0006]本發(fā)明中采用以下方案實(shí)現(xiàn):
一種Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法,其特征在于包括以下階段步
驟:
步驟1、在作業(yè)進(jìn)行解析階段,為每個(gè)節(jié)點(diǎn)上的每個(gè)作業(yè)設(shè)置任務(wù)階段權(quán)值的初始值,如果有相同類型的作業(yè)在該節(jié)點(diǎn)上執(zhí)行過(guò)則以已完成作業(yè)反饋的階段權(quán)值信息設(shè)置初始值;否則,以該節(jié)點(diǎn)上完成的各種作業(yè)中出現(xiàn)頻率最高的階段權(quán)值信息為其設(shè)置初始值;步驟2、在自學(xué)習(xí)階段,利用該節(jié)點(diǎn)上該作業(yè)已經(jīng)完成的前若干個(gè)Map任務(wù)和Reduce任務(wù)的實(shí)際執(zhí)行時(shí)間,分別計(jì)算出其相應(yīng)子階段執(zhí)行時(shí)間的比例,轉(zhuǎn)化成階段權(quán)值;利用求幾何平均值的方法分別修正該作業(yè)前若干個(gè)Map任務(wù)和Reduce任務(wù)的階段權(quán)值;
步驟3、在任務(wù)反饋階段,將修正過(guò)的階段權(quán)值作為該作業(yè)標(biāo)準(zhǔn)的階段權(quán)值設(shè)置,該節(jié)點(diǎn)上該作業(yè)剩余的任務(wù)啟動(dòng)時(shí)均采用該標(biāo)準(zhǔn)設(shè)置;結(jié)合任務(wù)子階段的進(jìn)度,估算每個(gè)任務(wù)執(zhí)行的出剩余的執(zhí)行時(shí)間,作為落后任務(wù)篩選的判別條件;
步驟4、在作業(yè)所有的任務(wù)完成后進(jìn)入作業(yè)反饋階段,該階段分別對(duì)該節(jié)點(diǎn)上該作業(yè)的所有Map任務(wù)和Reduce任務(wù)分別進(jìn)行分階段的求取幾何平均值,并在節(jié)點(diǎn)上更新作業(yè)名-階段權(quán)值映射記錄,作為后續(xù)該節(jié)點(diǎn)上作業(yè)執(zhí)行的參考。
[0007]本發(fā)明的方法能夠在多作業(yè)并行執(zhí)行的環(huán)境下分別對(duì)各個(gè)作業(yè)的任務(wù)進(jìn)行自主學(xué)習(xí)和信息反饋,獲得更精確的階段權(quán)值估計(jì),提高任務(wù)剩余執(zhí)行時(shí)間預(yù)估的準(zhǔn)確性,進(jìn)而提高落后任務(wù)選擇的命中率,促進(jìn)集群資源的優(yōu)化利用。
【專利附圖】
【附圖說(shuō)明】
[0008]圖1是Hadoop多作業(yè)環(huán)境下基于自學(xué)習(xí)反饋的任務(wù)調(diào)度的體系結(jié)構(gòu)圖。
[0009]圖2是Hadoop多作業(yè)環(huán)境下基于自學(xué)習(xí)反饋的任務(wù)調(diào)度的流程圖。
【具體實(shí)施方式】
[0010]下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0011]請(qǐng)參照?qǐng)D1,本發(fā)明Hadoop的每個(gè)工作節(jié)點(diǎn)通過(guò)作業(yè)提交階段的解析后,對(duì)每個(gè)作業(yè)進(jìn)行自主學(xué)習(xí),對(duì)已經(jīng)完成的Map任務(wù)或Reduce任務(wù)計(jì)算其各子階段執(zhí)行時(shí)間的比例,轉(zhuǎn)換為階段權(quán)值,利用幾何平均數(shù)的算法處理上述已完成的若干個(gè)任務(wù)的階段權(quán)值,得到適用于當(dāng)前Hadoop集群環(huán)境下該作業(yè)的任務(wù)各子階段的參考階段權(quán)值。在任務(wù)反饋階段,利用自學(xué)習(xí)階段獲取的參考階段權(quán)值為該作業(yè)的其余任務(wù)設(shè)置符合任務(wù)執(zhí)行特性和當(dāng)前資源環(huán)境的階段權(quán)值。利用該階段權(quán)值結(jié)合子階段的進(jìn)度,就可以估算出距該任務(wù)全部結(jié)束所需要的時(shí)間。作業(yè)反饋階段在作業(yè)的所有任務(wù)完成后進(jìn)行,分別對(duì)該作業(yè)的所有Map任務(wù)和Reduce任務(wù)進(jìn)行分階段的求取幾何平均值,并記錄在節(jié)點(diǎn)上,作為后續(xù)作業(yè)執(zhí)行的參考。請(qǐng)參照?qǐng)D2,具體分為以下步驟:
步驟I是通過(guò)作業(yè)提交時(shí)JobTracker傳入到TaskTracker中的作業(yè)信息,在每個(gè)節(jié)點(diǎn)的TaskTracker上建立作業(yè)名-階段權(quán)值映射,如果該作業(yè)曾經(jīng)在該節(jié)點(diǎn)上執(zhí)行過(guò),則首先采用歷史的階段權(quán)值信息作為其默認(rèn)初始值,同時(shí)更新該作業(yè)出現(xiàn)頻數(shù);否則根據(jù)局部性原理,以該節(jié)點(diǎn)上完成的各種作業(yè)中出現(xiàn)頻率最高的作業(yè)的階段權(quán)值信息為其設(shè)置初始值。該階段可以有效的實(shí)現(xiàn)在多作業(yè)環(huán)境下對(duì)不同作業(yè)的分別處理,避免多作業(yè)歷史信息的相互干擾。
[0012]步驟2通過(guò)該節(jié)點(diǎn)上該作業(yè)已經(jīng)完成的任務(wù)的實(shí)際執(zhí)行時(shí)間,分別計(jì)算出其相應(yīng)子階段執(zhí)行時(shí)間的比例,轉(zhuǎn)化成階段值。具體的階段權(quán)值計(jì)算公式如下所示:
【權(quán)利要求】
1.一種Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法,其特征在于包括以下階段步驟: 步驟1、在作業(yè)進(jìn)行解析階段,為每個(gè)節(jié)點(diǎn)上的每個(gè)作業(yè)設(shè)置任務(wù)階段權(quán)值的初始值,如果有相同類型的作業(yè)在該節(jié)點(diǎn)上執(zhí)行過(guò)則以已完成作業(yè)反饋的階段權(quán)值信息設(shè)置初始值;否則,以該節(jié)點(diǎn)上完成的各種作業(yè)中出現(xiàn)頻率最高的階段權(quán)值信息為其設(shè)置初始值; 步驟2、在自學(xué)習(xí)階段,利用該節(jié)點(diǎn)上該作業(yè)已經(jīng)完成的前若干個(gè)Map任務(wù)和Reduce任務(wù)的實(shí)際執(zhí)行時(shí)間,分別計(jì)算出其相應(yīng)子階段執(zhí)行時(shí)間的比例,轉(zhuǎn)化成階段權(quán)值;利用求幾何平均值的方法分別修正該作業(yè)前若干個(gè)Map任務(wù)和Reduce任務(wù)的階段權(quán)值; 步驟3、在任務(wù)反饋階段,將修正過(guò)的階段權(quán)值作為該作業(yè)標(biāo)準(zhǔn)的階段權(quán)值設(shè)置,該節(jié)點(diǎn)上該作業(yè)剩余的任務(wù)啟動(dòng)時(shí)均采用該標(biāo)準(zhǔn)設(shè)置;結(jié)合任務(wù)子階段的進(jìn)度,估算每個(gè)任務(wù)執(zhí)行的出剩余的執(zhí)行時(shí)間,作為落后任務(wù)篩選的判別條件; 步驟4、在作業(yè)所有的任務(wù)完成后進(jìn)入作業(yè)反饋階段,該階段分別對(duì)該節(jié)點(diǎn)上該作業(yè)的所有Map任務(wù)和Reduce任務(wù)分別進(jìn)行分階段的求取幾何平均值,并在節(jié)點(diǎn)上更新作業(yè)名-階段權(quán)值映射記錄,作為后續(xù)該節(jié)點(diǎn)上作業(yè)執(zhí)行的參考。
2.根據(jù)權(quán)利要求1所述的Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法,其特征在于:所述步驟2中的階段權(quán)值計(jì)算公式如下所示:
3.根據(jù)權(quán)利要求2所述的Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法,其特征在于:所述幾何平均值計(jì)算公式如下所示:
4.根據(jù)權(quán)利要求1所述的Hadoop多作業(yè)環(huán)境下自學(xué)習(xí)反饋的任務(wù)調(diào)度方法,其特征在于:所述步驟3中剩余的執(zhí)行時(shí)間的估算采取Hadoop默認(rèn)的計(jì)算方式,參與估算的相關(guān)公式如下所示:
【文檔編號(hào)】G06F9/46GK103440167SQ201310396663
【公開(kāi)日】2013年12月11日 申請(qǐng)日期:2013年9月4日 優(yōu)先權(quán)日:2013年9月4日
【發(fā)明者】郭文忠, 林常航, 陳國(guó)龍 申請(qǐng)人:福州大學(xué)