廖彬,張?zhí)?,于炯,劉繼,尹路通,郭剛
?
溫度感知的MapReduce節(jié)能任務(wù)調(diào)度策略
廖彬1,張?zhí)?,于炯3,劉繼1,尹路通3,郭剛3
(1. 新疆財(cái)經(jīng)大學(xué)統(tǒng)計(jì)與信息學(xué)院,新疆烏魯木齊 830012; 2. 新疆醫(yī)科大學(xué)醫(yī)學(xué)工程技術(shù)學(xué)院,新疆烏魯木齊 830011;3. 新疆大學(xué)軟件學(xué)院,新疆烏魯木齊 830008)
現(xiàn)有的FIFO、Fair、Capacity、LATE及Deadline Constraint等MapReduce任務(wù)調(diào)度器的主要區(qū)別在于隊(duì)列與作業(yè)選擇策略的不同,而任務(wù)選擇策略基本相同,都是將數(shù)據(jù)的本地性(data-locality)作為選擇的主要因素,忽略了對(duì)TaskTracker當(dāng)前溫度狀態(tài)的考慮。實(shí)驗(yàn)表明,當(dāng)TaskTracker處于高溫狀態(tài)時(shí),一方面使CPU利用率變高,導(dǎo)致節(jié)點(diǎn)能耗增大,任務(wù)處理速度下降,導(dǎo)致任務(wù)完成時(shí)間增加;另一方面,易發(fā)的宕機(jī)現(xiàn)象將直接導(dǎo)致任務(wù)的失敗,推測(cè)執(zhí)行(speculative execution)機(jī)制容易使運(yùn)行時(shí)任務(wù)被迫中止。繼而提出溫度感知的節(jié)能任務(wù)調(diào)度策略,將節(jié)點(diǎn)CPU溫度納入任務(wù)調(diào)度的決策信息,以避免少數(shù)高溫任務(wù)執(zhí)行節(jié)點(diǎn)對(duì)作業(yè)整體進(jìn)度的影響。實(shí)驗(yàn)結(jié)果表明,算法能夠避免任務(wù)分配到高溫節(jié)點(diǎn),從而有效地縮短作業(yè)完成時(shí)間,減小作業(yè)執(zhí)行能耗,提高系統(tǒng)穩(wěn)定性。
綠色計(jì)算;MapReduce;任務(wù)調(diào)度;溫度感知
大數(shù)據(jù)時(shí)代,數(shù)據(jù)從簡(jiǎn)單的處理對(duì)象開(kāi)始轉(zhuǎn)變?yōu)橐环N基礎(chǔ)性資源,如何更好地管理和利用大數(shù)據(jù)已經(jīng)成為普遍關(guān)注的話題,大數(shù)據(jù)的規(guī)模效應(yīng)給數(shù)據(jù)存儲(chǔ)、管理以及數(shù)據(jù)分析帶來(lái)了極大的挑戰(zhàn)[1]。據(jù)文獻(xiàn)[2]統(tǒng)計(jì),2007年全球數(shù)據(jù)量達(dá)到281 EB,而2007年到2011年這5年時(shí)間內(nèi),全球數(shù)據(jù)量增長(zhǎng)了10倍。數(shù)據(jù)量的高速增長(zhǎng)伴隨而來(lái)的是存儲(chǔ)與處理系統(tǒng)規(guī)模不斷的擴(kuò)大,這使運(yùn)營(yíng)成本不斷的提高,其成本不僅包括硬件、機(jī)房、冷卻設(shè)備等固定成本,還包括IT設(shè)備與冷卻設(shè)備的電能消耗等其他開(kāi)銷。并且,系統(tǒng)的高能耗將導(dǎo)致過(guò)量溫室氣體的排放并引發(fā)環(huán)境問(wèn)題。事實(shí)上,在能源價(jià)格上漲、數(shù)據(jù)中心存儲(chǔ)規(guī)模不斷擴(kuò)大的今天,高能耗已逐漸成為制約云計(jì)算與大數(shù)據(jù)快速發(fā)展的一個(gè)主要瓶頸[1]。據(jù)文獻(xiàn)[3]統(tǒng)計(jì),目前IT領(lǐng)域的二氧化碳排放量占全球的2%,而到2020年這一比例將翻番。2008年路由器、交換機(jī)、服務(wù)器、冷卻設(shè)備、數(shù)據(jù)中心等互聯(lián)網(wǎng)設(shè)備總共消耗8 680億度電,占全球總耗電量的5.3%。紐約時(shí)報(bào)與麥肯錫經(jīng)過(guò)一年的聯(lián)合調(diào)查后,最終在《紐約時(shí)報(bào)》上發(fā)表了“Power,pollution and the Internet”[4],調(diào)查顯示Goolge數(shù)據(jù)中心年耗電量約300萬(wàn)瓦,F(xiàn)acebook則達(dá)到了60萬(wàn)瓦,但巨大的能耗中卻只有6%~12%的能耗被用于處理相應(yīng)用戶的請(qǐng)求。與此同時(shí),Barroso等[5]對(duì)Google內(nèi)部5 000多臺(tái)服務(wù)器進(jìn)行長(zhǎng)達(dá)半年的調(diào)查統(tǒng)計(jì)結(jié)果表明,服務(wù)器在大部分時(shí)間里利用率都在10%~50%之間,服務(wù)器在負(fù)載很低(小于10%)的情況下電能消耗也超過(guò)了峰值能耗的50%。
Hadoop[6]作為新的分布式存儲(chǔ)與計(jì)算架構(gòu),參考Google的分布式存儲(chǔ)系統(tǒng)GFS[7]實(shí)現(xiàn)了分布式文件存儲(chǔ)HDFS;參考MapReduce[8]計(jì)算模型實(shí)現(xiàn)了自己的分布式計(jì)算框架;參考BigTable實(shí)現(xiàn)了分布式數(shù)據(jù)庫(kù)HBase。由于能夠部署在通用平臺(tái)上,并且具有可擴(kuò)展性(scalable)、低成本(economical)、高效性(efficient)與可靠性(reliable)等優(yōu)點(diǎn)使其在分布式計(jì)算領(lǐng)域得到了廣泛運(yùn)用,并且已逐漸成為工業(yè)與學(xué)術(shù)屆事實(shí)上的海量數(shù)據(jù)并行處理標(biāo)準(zhǔn)[9]。雖然Hadoop擁有諸多優(yōu)點(diǎn),但是和Google服務(wù)器一樣,Hadoop集群內(nèi)部服務(wù)器同樣存在嚴(yán)重的高能耗低利用率問(wèn)題[10]。Hadoop主要由分布式存儲(chǔ)系統(tǒng)HDFS與分布式任務(wù)執(zhí)行框架MapReduce這2部分組成,現(xiàn)有研究大多從分布式存儲(chǔ)系統(tǒng)HDFS入手解決Hadoop的能耗問(wèn)題,針對(duì)MapReduce框架能耗優(yōu)化方面的研究則相對(duì)較少。大量研究圍繞通過(guò)對(duì)存儲(chǔ)資源的有效調(diào)度,在不影響系統(tǒng)性能的前提條件下將部分存儲(chǔ)節(jié)點(diǎn)調(diào)整到低能耗模式,以達(dá)到節(jié)能的目的。為提高M(jìn)apReduce的能耗利用效率,本文做了如下工作。
1)首先對(duì)MapReduce系統(tǒng)模型的含義進(jìn)行了數(shù)學(xué)表達(dá),并對(duì)現(xiàn)有的FIFO、Fair、Capacity、LATE及Deadline Constraint等MapReduce任務(wù)調(diào)度模型進(jìn)行了深入的歸納分析,在此基礎(chǔ)上總結(jié)了現(xiàn)有調(diào)度策略存在的問(wèn)題。
2) 提出了溫度感知的節(jié)能任務(wù)調(diào)度策略,將節(jié)點(diǎn)CPU溫度納入任務(wù)調(diào)度的決策信息,以避免少數(shù)高溫任務(wù)執(zhí)行節(jié)點(diǎn)對(duì)作業(yè)整體進(jìn)度的影響。算法實(shí)現(xiàn)方式上提出了基于心跳信息修改及基于健康監(jiān)測(cè)腳本的2種實(shí)現(xiàn)方案。
3) 搭建真實(shí)的實(shí)驗(yàn)環(huán)境,精確地測(cè)量了節(jié)點(diǎn)CPU溫度對(duì)任務(wù)運(yùn)行時(shí)間及節(jié)點(diǎn)能耗的影響。證明了本文算法對(duì)不同類型作業(yè)任務(wù)完成時(shí)間及作業(yè)執(zhí)行能耗兩方面的改進(jìn)。
傳統(tǒng)的IT系統(tǒng)一方面通過(guò)超額資源供給與冗余設(shè)計(jì)以保障QoS與系統(tǒng)可靠性[11],另一方面負(fù)載均衡算法專注于將用戶請(qǐng)求平均分發(fā)給集群中的所有服務(wù)器以提高系統(tǒng)的可用性,這些設(shè)計(jì)原則都沒(méi)有考慮到系統(tǒng)的能耗因素,這使IT系統(tǒng)的能量利用日益暴露出高能耗低效率的問(wèn)題[12]。學(xué)術(shù)與工業(yè)界分別從硬件[13~15]、操作系統(tǒng)[16~18]、虛擬機(jī)[19~26]、數(shù)據(jù)中心[27~33]4個(gè)層次去解決IT系統(tǒng)的能耗問(wèn)題。針對(duì)分布式計(jì)算系統(tǒng)的能耗問(wèn)題的研究,通常以Hadoop作為研究對(duì)象,并且大多從分布式存儲(chǔ)系統(tǒng)HDFS入手解決其存在的能耗問(wèn)題,針對(duì)任務(wù)執(zhí)行框架MapReduce能耗優(yōu)化方面的研究則相對(duì)較少。
在分布式存儲(chǔ)系統(tǒng)節(jié)能方面,根據(jù)軟硬件角度進(jìn)行劃分,可分為硬件節(jié)能與軟件節(jié)能兩方面[34]。硬件節(jié)能主要通過(guò)低能耗高效率的硬件設(shè)備或體系結(jié)構(gòu),對(duì)現(xiàn)有的高能耗存儲(chǔ)設(shè)備進(jìn)行替換,從而達(dá)到節(jié)能的目的。硬件節(jié)能方法效果立竿見(jiàn)影,且不需要復(fù)雜的能耗管理組件;但是對(duì)于已經(jīng)部署的大規(guī)模應(yīng)用系統(tǒng),大批量的硬件替換面臨成本過(guò)高的問(wèn)題。軟件節(jié)能通過(guò)對(duì)存儲(chǔ)資源的有效調(diào)度,在不影響系統(tǒng)性能的前提條件下將部分存儲(chǔ)節(jié)點(diǎn)調(diào)整到低能耗模式,以達(dá)到節(jié)能的目的。由于不需要對(duì)現(xiàn)有硬件體系進(jìn)行改變,軟件節(jié)能是目前云存儲(chǔ)節(jié)能技術(shù)的研究熱點(diǎn)。軟件節(jié)能研究主要集中在基于節(jié)點(diǎn)管理與數(shù)據(jù)管理兩方面。節(jié)點(diǎn)管理主要研究如何選擇存儲(chǔ)系統(tǒng)中的部分節(jié)點(diǎn)或磁盤為上層應(yīng)用提供數(shù)據(jù)服務(wù),并讓其他節(jié)點(diǎn)進(jìn)入低能耗模式以達(dá)到降低能耗的目的。節(jié)點(diǎn)管理中被關(guān)閉節(jié)點(diǎn)的選擇與數(shù)據(jù)管理技術(shù)緊密相關(guān),而目前已有的數(shù)據(jù)管理技術(shù)主要有基于靜態(tài)數(shù)據(jù)放置、動(dòng)態(tài)數(shù)據(jù)放置與緩存預(yù)取3種。其中基于靜態(tài)數(shù)據(jù)放置的數(shù)據(jù)管理[35-39]根據(jù)固定的數(shù)據(jù)放置策略將數(shù)據(jù)存儲(chǔ)到系統(tǒng)中各節(jié)點(diǎn)上后,將不再改變其存儲(chǔ)結(jié)構(gòu)?;趧?dòng)態(tài)數(shù)據(jù)放置的數(shù)據(jù)管理[40~46]根據(jù)數(shù)據(jù)訪問(wèn)頻度動(dòng)態(tài)調(diào)整數(shù)據(jù)存放的位置,將訪問(wèn)頻度高與頻度低的數(shù)據(jù)遷移到不同磁盤上,對(duì)存儲(chǔ)低頻度數(shù)據(jù)的磁盤進(jìn)行節(jié)能處理以降低系統(tǒng)能耗?;诰彺骖A(yù)取的數(shù)據(jù)管理[47]借鑒內(nèi)存中的數(shù)據(jù)緩存思想,將磁盤中的數(shù)據(jù)取到內(nèi)存或其他低能耗輔助存儲(chǔ)設(shè)備并使原磁盤進(jìn)入低能耗模式以此達(dá)到節(jié)能的目的。
研究分布式任務(wù)執(zhí)行框架MapReduce能耗優(yōu)化方面,少有的研究通過(guò)選擇部分節(jié)點(diǎn)執(zhí)行任務(wù)[48]、任務(wù)完成后關(guān)閉節(jié)點(diǎn)[49]、配置參數(shù)優(yōu)化[50]、DVFS調(diào)度[51]、作業(yè)調(diào)度[52]、虛擬機(jī)放置策略[53]及數(shù)據(jù)壓縮[54]等方法達(dá)到提高M(jìn)apReduce能耗利用率的目的。與covering subset思想相反,文獻(xiàn)[49]提出all-in strategy(AIS),即將整個(gè)MapReduce集群作為整體用于任務(wù)的執(zhí)行,當(dāng)任務(wù)結(jié)束后將整個(gè)集群做節(jié)能處理(關(guān)閉節(jié)點(diǎn))達(dá)到節(jié)能的目的。Chen等[50]發(fā)現(xiàn)MapReduce框架的參數(shù)配置對(duì)MapReduce能耗的利用具有較大影響,通過(guò)大量的實(shí)驗(yàn)得到優(yōu)化MapReduce能耗的配置參數(shù),對(duì)提高M(jìn)apReduce集群系統(tǒng)的能耗利用率具有指導(dǎo)意義。文獻(xiàn)[51]中利用DVFS(dynamic voltage and frequency scaling)技術(shù),通過(guò)動(dòng)態(tài)調(diào)整CPU頻率以適應(yīng)當(dāng)前的MapReduce任務(wù)負(fù)載狀態(tài)達(dá)到優(yōu)化能耗利用的目的。文獻(xiàn)[52]提出Hadoop節(jié)能適應(yīng)性框架GreenHadoop,通過(guò)合理的作業(yè)調(diào)度,在滿足作業(yè)截止時(shí)間約束的前提下通過(guò)配置與當(dāng)前作業(yè)量相匹配的作業(yè)處理能力(活動(dòng)節(jié)點(diǎn)數(shù)量),達(dá)到最小化Hadoop集群能耗的目的,實(shí)驗(yàn)證明GreenHadoop與Hadoop相比提高了MapReduce的能耗利用率。宋杰等[55]對(duì)云數(shù)據(jù)管理系統(tǒng)(包括基于MapReduce的系統(tǒng))的能耗進(jìn)行了基準(zhǔn)測(cè)試,并定義了能耗的度量模型與能耗測(cè)試方法,證明了不同系統(tǒng)在能耗方面存在著較大差異,需要進(jìn)一步對(duì)系統(tǒng)進(jìn)行能耗優(yōu)化。
本文與已有工作的不同在于:已有的MapReduce節(jié)能任務(wù)調(diào)度研究是在滿足作業(yè)截止時(shí)間約束的前提下通過(guò)減小活動(dòng)節(jié)點(diǎn)的數(shù)量,達(dá)到最小化集群能耗的目的,是從整個(gè)集群的層面進(jìn)行節(jié)能,而本文則提出溫度感知的任務(wù)調(diào)度模型,將節(jié)點(diǎn)CPU溫度納入任務(wù)調(diào)度的決策信息,以避免少數(shù)高溫任務(wù)執(zhí)行節(jié)點(diǎn)對(duì)作業(yè)整體進(jìn)度的影響,達(dá)到縮短作業(yè)完成時(shí)間,減小作業(yè)執(zhí)行能耗的目的。相比已有工作,本文是從任務(wù)調(diào)度的層面出發(fā),實(shí)現(xiàn)MapReduce作業(yè)能耗效率的提高。
3.1 MapReduce系統(tǒng)模型
MapReduce運(yùn)行環(huán)境通常由多個(gè)機(jī)架RACK組成,而一個(gè)RACK內(nèi)部又由多個(gè)節(jié)點(diǎn)服務(wù)器組成。通常情況下,MapReudce集群由2個(gè)NameNode(或JobTracker)管理節(jié)點(diǎn)(主管理節(jié)點(diǎn)與從管理節(jié)點(diǎn))與多個(gè)DataNode(或TaskTracker)節(jié)點(diǎn)構(gòu)成。本文將MapReduce集群中所有的DataNode節(jié)點(diǎn)服務(wù)器用矩陣表示,MapReduce集群節(jié)點(diǎn)矩陣如定義1所示。
定義1 MapReduce集群模型。設(shè)MapReduce集群由個(gè)RACK組成,并且設(shè)所有RACK中都有個(gè)DataNode節(jié)點(diǎn)服務(wù)器,用表示DataNode節(jié)點(diǎn)服務(wù)器,將MapReduce集群中的所有DataNode節(jié)點(diǎn)表示為矩陣
定義2 作業(yè)的任務(wù)分解模型。如圖1所示, MapReduce框架將作業(yè)(job)分解為多個(gè)Map與Reduce任務(wù)并行地在集群中執(zhí)行,可將這個(gè)過(guò)程定義為,其中,為映射函數(shù),集合與分別表示job分解后的Map與Reduce任務(wù),其任務(wù)分解模型可由式(2)表示。
式(2)表示作業(yè)被分解為個(gè)Map任務(wù)與個(gè)Reduce任務(wù)。其中,表示Map任務(wù)集合,表示任意Map任務(wù);表示Reduce任務(wù)集合,表示任意Reduce任務(wù)。由于已有的FIFO、Fair、Capacity、LATE及Deadline Constraint等MapReduce作業(yè)調(diào)度算法已經(jīng)實(shí)現(xiàn)作業(yè)到任務(wù)的分解。所以,作業(yè)的任務(wù)分解模型并不是本文的研究重點(diǎn)。作業(yè)的分解在作業(yè)的初始化階段完成,JobTracker根據(jù)作業(yè)輸入數(shù)據(jù)量與作業(yè)配置參數(shù)(用戶指定或系統(tǒng)默認(rèn))將作業(yè)分解成個(gè)Map任務(wù)及個(gè)Reduce任務(wù),并將作業(yè)分解信息存儲(chǔ)到相關(guān)數(shù)據(jù)結(jié)構(gòu)中(如XML作業(yè)分解描述文件),供后期調(diào)度系統(tǒng)執(zhí)行。
圖1 MapReduce作業(yè)的任務(wù)分解
定義3 任務(wù)(task)資源(slot)映射模型。作業(yè)根據(jù)定義2被分解為Map與Reduce任務(wù)后,將由作業(yè)調(diào)度系統(tǒng)將任務(wù)映射到具有空閑資源槽的DataNode節(jié)點(diǎn)上執(zhí)行。任務(wù)與資源映射過(guò)程可定義為映射,其中為映射函數(shù),與分別表示Map與Reduce任務(wù)的集合,表示MapReudce集群中DataNode節(jié)點(diǎn)的集合。具體而言,映射模型可由式(3)描述。
在MapReduce計(jì)算模型中,任務(wù)與資源之間的映射本質(zhì)上是任務(wù)調(diào)度問(wèn)題。問(wèn)題的核心是根據(jù)當(dāng)前集群(或資源池)中各節(jié)點(diǎn)上的資源(如CPU、內(nèi)存、磁盤與網(wǎng)絡(luò)等)的剩余情況與各用戶作業(yè)的服務(wù)質(zhì)量(QoS)要求,在資源與作業(yè)(任務(wù))之間作出最優(yōu)的匹配。由于資源剩余與用戶作業(yè)QoS需求之間存在多樣化的特點(diǎn),所以MapReduce中的任務(wù)資源映射模型是一個(gè)多目標(biāo)優(yōu)化問(wèn)題,屬于典型的NP難問(wèn)題。
3.2 MapReduce調(diào)度模式
Hadoop中引入資源槽(slot)的概念來(lái)抽象表示各節(jié)點(diǎn)(DataNode或TaskTracker)上的資源。Hadoop將各節(jié)點(diǎn)上的資源(如CPU、內(nèi)存、磁盤與網(wǎng)絡(luò)等)進(jìn)行等量的切分,將每一份資源稱作資源槽,同時(shí)將slot分成Map slot與Reduce slot這2種,對(duì)執(zhí)行Map與Reduce任務(wù)時(shí)的資源使用差異進(jìn)行了區(qū)分。Hadoop將任務(wù)對(duì)多維資源的需求抽象成slot,大大簡(jiǎn)化了資源的表示及管理問(wèn)題;規(guī)定一個(gè)task可根據(jù)實(shí)際情況占用一個(gè)或多個(gè)slot(大部分調(diào)度器(如FIFO、 Fair Scheduler)只支持一個(gè)task占用一個(gè)slot,而Capacity Scheduler可根據(jù)作業(yè)內(nèi)存需求占用多個(gè)slot),大大簡(jiǎn)化了任務(wù)與資源之間的映射問(wèn)題。在實(shí)際運(yùn)用環(huán)境中,需要根據(jù)節(jié)點(diǎn)硬件配置及作業(yè)特點(diǎn)對(duì)同節(jié)點(diǎn)上的Map slot(配置參數(shù): mapred.tasktracker.map.tasks.maximum)及Reduce slot (配置參數(shù):mapred.tasktracker.reduce. tasks.maximun)數(shù)進(jìn)行設(shè)置。圖2所示為MapReduce作業(yè)調(diào)度模型,一個(gè)MapReduce作業(yè)從提交到執(zhí)行的整個(gè)過(guò)程可分為7步。
Step1 用戶通過(guò)調(diào)用作業(yè)提交函數(shù)將作業(yè)信息(包括作業(yè)數(shù)據(jù)及作業(yè)配置信息等)提交到JobTracker。
Step2 當(dāng)JobTracker收到用戶新提交的作業(yè)后,JobTracker將通知任務(wù)調(diào)度器TaskScheduler對(duì)作業(yè)進(jìn)行初始化操作。
Step3 某個(gè)具有空閑slot的TaskTracker向JobTracker發(fā)送心跳(heartbeat)信息,其中包含剩余的slot數(shù)目,資源狀態(tài)信息及能否接受新任務(wù)等信息。
Step4 如果某TaskTracker能夠接受新任務(wù),則JobTracker調(diào)用TaskScheduler中的assignTasks方法為該TaskTracker分配新的任務(wù)。
Step5 TaskScheduler按照系統(tǒng)配置的調(diào)度策略(如 FIFO、Fair、Capacity、LATE及Deadline Constraint等)為該TaskTracker選擇出最合適的任務(wù)(或任務(wù)列表)。
Step6 JobTracker將Step5中確定的任務(wù)(或任務(wù)列表)通過(guò)心跳應(yīng)答的方式返回給Step4中確定的TaskTracker。
Step7 當(dāng)TaskTracker收到JobTracker發(fā)送的心跳信息后,如果發(fā)現(xiàn)心跳信息中包含需要執(zhí)行的新任務(wù),則立即啟動(dòng)該任務(wù)的執(zhí)行。
Hadoop中任務(wù)調(diào)度是一個(gè)可插拔的獨(dú)立模塊,Hadoop集群管理員可根據(jù)自己的實(shí)際應(yīng)用需求設(shè)計(jì)任務(wù)調(diào)度器,可通過(guò)參數(shù)配置項(xiàng)mapred.jobtracker,taskScheduler對(duì)調(diào)度器進(jìn)行配置。任務(wù)調(diào)度器TaskScheduler與JobTracker之間存在較為密切的功能互相調(diào)用關(guān)系,JobTracker需要調(diào)用TaskScheduler的assignTasks函數(shù)為具有空閑slot的TaskTracker分配新任務(wù),而JobTracker中保存著整個(gè)集群中節(jié)點(diǎn)、作業(yè)及任務(wù)等相關(guān)元數(shù)據(jù)信息,而這些元數(shù)據(jù)信息是TaskScheduler進(jìn)行調(diào)度決策時(shí)需要用到的。
3.3 MapReduce能耗模型
在3.2節(jié)對(duì)MapReduce及調(diào)度模式的分析基礎(chǔ)上,本節(jié)對(duì)MapRedcue能耗模型進(jìn)行建模,理論上證明高溫節(jié)點(diǎn)對(duì)能耗的影響,其中,5.2節(jié)通過(guò)實(shí)驗(yàn)數(shù)據(jù)證明了高溫對(duì)能耗的影響。
由于DataNode節(jié)點(diǎn)功耗由靜態(tài)功耗與動(dòng)態(tài)功耗2部分組成[56],可進(jìn)一步細(xì)化為與2部分,即可表示為
由于CPU是最主要的能耗部件,并且系統(tǒng)整體能耗通常與CPU利用率成正比[57]。同時(shí),隨著節(jié)能技術(shù)在處理器應(yīng)用上的不斷推廣,比如Intel的Speedstep與AMD的PowerNow技術(shù),使處理器能夠根據(jù)負(fù)載動(dòng)態(tài)調(diào)節(jié)性能,從而使能耗與負(fù)載之間具有較好的比例性[58]。那么,可將與分別用式(6)進(jìn)行表示
(6)
從MapReduce能耗模型式(7)可以看出,計(jì)算MapReduce作業(yè)執(zhí)行能耗的唯一前提條件是取得任務(wù)運(yùn)行過(guò)程中的CPU利用率序列。從5.2節(jié)實(shí)驗(yàn)數(shù)據(jù)表明,過(guò)高的節(jié)點(diǎn)溫度將加大作業(yè)運(yùn)行時(shí)的CPU利用率。通過(guò)式(7)理論上證明了CPU利用率的升高將導(dǎo)致系統(tǒng)能耗的增加。
4.1 現(xiàn)有調(diào)度策略存在的問(wèn)題
從3.2節(jié)中對(duì)MapReduce調(diào)度模式的分解可以看出,現(xiàn)有的MapReduce均為3級(jí)調(diào)度模型(如圖2所示),即當(dāng)一個(gè)TaskTracker出現(xiàn)空閑資源槽時(shí),調(diào)度器會(huì)首先選擇一個(gè)作業(yè)隊(duì)列,再選擇作業(yè)隊(duì)列中的作業(yè),最后選擇作業(yè)中的任務(wù),并最終將選中的任務(wù)分配給這個(gè)空閑TaskTracker?,F(xiàn)有的MapReduce任務(wù)調(diào)度器的主要區(qū)別在于隊(duì)列選擇策略與作業(yè)選擇策略的不同,而任務(wù)選擇策略基本相同,都是將數(shù)據(jù)的本地性(data-locality)作為選擇的主要因素。
當(dāng)某TaskTracker出現(xiàn)空閑資源槽時(shí),會(huì)立即向JobTracker發(fā)送心跳信息,向JobTracker告知自己當(dāng)前的資源狀態(tài)信息及能夠接受新任務(wù)的意愿。而JobTracker也將立即通過(guò)任務(wù)調(diào)度器TaskScheduler為TaskTracker所在的空閑資源槽分配新的任務(wù)。5.2節(jié)中實(shí)驗(yàn)數(shù)據(jù)表明,當(dāng)節(jié)點(diǎn)處于高溫狀態(tài)時(shí),作業(yè)完成時(shí)間變長(zhǎng),作業(yè)運(yùn)行時(shí)功耗增加,作業(yè)運(yùn)行時(shí)CPU利用率變高,作業(yè)(數(shù)據(jù))處理速度變慢。實(shí)際應(yīng)用環(huán)境中,節(jié)點(diǎn)的高溫狀態(tài)可能由如下2種原因造成。
1) 節(jié)點(diǎn)散熱系統(tǒng)出現(xiàn)故障。節(jié)點(diǎn)散熱系統(tǒng)一方面包括節(jié)點(diǎn)機(jī)身內(nèi)部的散熱系統(tǒng),另一方面包括節(jié)點(diǎn)外部的,即數(shù)據(jù)中心(或機(jī)房)的散熱系統(tǒng)。當(dāng)節(jié)點(diǎn)散熱系統(tǒng)出現(xiàn)故障時(shí),節(jié)點(diǎn)產(chǎn)生的熱量得不到及時(shí)的驅(qū)散,加之節(jié)點(diǎn)在任務(wù)運(yùn)行過(guò)程中將不斷產(chǎn)生新的熱量,當(dāng)熱量累加到一定值時(shí),將影響節(jié)點(diǎn)的運(yùn)行狀態(tài),直到引起導(dǎo)致宕機(jī),機(jī)器自動(dòng)關(guān)閉,甚至導(dǎo)致硬件的燒毀。
2) 節(jié)點(diǎn)長(zhǎng)時(shí)間處于高負(fù)荷運(yùn)行狀態(tài)。節(jié)點(diǎn)高負(fù)載運(yùn)行時(shí)功耗達(dá)到峰值,散發(fā)出大量熱量。長(zhǎng)時(shí)間的高負(fù)荷運(yùn)行容易導(dǎo)致節(jié)點(diǎn)的高溫。
從上文中對(duì)已有的任務(wù)調(diào)度策略的分析可以發(fā)現(xiàn)調(diào)度系統(tǒng)并不關(guān)心擁有空閑資源槽節(jié)點(diǎn)當(dāng)前的溫度狀態(tài),一旦節(jié)點(diǎn)出現(xiàn)空閑資源槽,調(diào)度系統(tǒng)就盡最大努力為該節(jié)點(diǎn)分配合適的任務(wù)。此種調(diào)度策略最大程度上增加了系統(tǒng)資源利用率,使大多數(shù)作業(yè)能夠更快地被處理完畢。但是,當(dāng)任務(wù)被分配到處于高溫狀態(tài)的節(jié)點(diǎn)時(shí),任務(wù)的運(yùn)行會(huì)出現(xiàn)以下2種情況。
1) 任務(wù)完成時(shí)間變長(zhǎng)。雖然MapReduce任務(wù)執(zhí)行過(guò)程中任務(wù)之間并不是完全按照并行的方式進(jìn)行的,但Map與Reduce任務(wù)之間存在不同程度的執(zhí)行順序與數(shù)據(jù)調(diào)用的制約關(guān)系(如只有當(dāng)一個(gè)作業(yè)的Map任務(wù)成功完成的數(shù)量超過(guò)一定的閾值時(shí),才能開(kāi)始分配該作業(yè)的Reduce任務(wù)),這使慢任務(wù)將造成等待時(shí)延,并最終影響到作業(yè)的整體完成時(shí)間。實(shí)際上, Hadoop的推測(cè)執(zhí)行(speculative execution)機(jī)制,容易使高溫節(jié)點(diǎn)的運(yùn)行時(shí)任務(wù)被迫中止。推測(cè)執(zhí)行機(jī)制是為了防止運(yùn)行速度慢的任務(wù)影響作業(yè)的整體執(zhí)行速度,根據(jù)推測(cè)算法推測(cè)出“拖后腿”的任務(wù),并為該任務(wù)啟動(dòng)一個(gè)備份任務(wù),并最終選用最先成功運(yùn)行完成任務(wù)的計(jì)算結(jié)果作為最終結(jié)果。推測(cè)執(zhí)行機(jī)制很可能使在高溫節(jié)點(diǎn)上執(zhí)行的任務(wù)“白忙活”。
2) 任務(wù)執(zhí)行失敗。高溫節(jié)點(diǎn)出現(xiàn)宕機(jī)將導(dǎo)致任務(wù)的執(zhí)行失敗,調(diào)度系統(tǒng)將對(duì)該任務(wù)重新啟動(dòng)。造成資源浪費(fèi)的同時(shí)延遲了作業(yè)的完成時(shí)間。
基于以上考慮,4.2節(jié)將提出溫度感知的任務(wù)調(diào)度算法2種實(shí)現(xiàn)方法,將節(jié)點(diǎn)當(dāng)前溫度考慮到任務(wù)調(diào)度過(guò)程中,以此避免高溫對(duì)作業(yè)執(zhí)行的影響,提高系統(tǒng)的穩(wěn)定性。
4.2 算法實(shí)現(xiàn)方法
本節(jié)主要針對(duì)3.2節(jié)中MapReduce調(diào)度模式中的Step4進(jìn)行改進(jìn),添加任務(wù)到資源映射(或任務(wù)調(diào)度)前對(duì)節(jié)點(diǎn)溫度的考慮,將節(jié)點(diǎn)當(dāng)前溫度考慮到任務(wù)調(diào)度過(guò)程中,以此避免高溫對(duì)作業(yè)執(zhí)行的影響,提高系統(tǒng)的穩(wěn)定性。溫度感知的任務(wù)調(diào)度算法有以下2種實(shí)現(xiàn)機(jī)制。
1) 將TaskTracker節(jié)點(diǎn)CPU溫度信息添加到心跳信息類TaskTrackerStatus中。當(dāng)JobTracker接受到心跳信息后,進(jìn)行任務(wù)調(diào)度前判斷該TaskTracker的CPU溫度是否超過(guò)設(shè)定的高溫閾值,如果低于高溫閾值,則進(jìn)行正常的調(diào)度;否則,不給該TaskTracker分配任務(wù)。
2) 配置TaskTracker健康監(jiān)測(cè)腳本。節(jié)點(diǎn)健康監(jiān)控NodeHealthCheckerService線程允許Hadoop管理員配置特定的健康監(jiān)測(cè)腳本,該腳本中可添加任何檢查語(yǔ)句作為節(jié)點(diǎn)是否健康運(yùn)行的依據(jù)。
4.2.1 基于心跳信息修改的實(shí)現(xiàn)方法
基于心跳信息修改的實(shí)現(xiàn)方法主要需要修改心跳信息類TaskTrackerStatus及調(diào)度器任務(wù)分配策略。
1) JobTracker與TaskTracker采用基于pull的通信模型, JobTracker不會(huì)主動(dòng)與TaskTracker進(jìn)行通信,而是被動(dòng)等待TaskTracker將當(dāng)前節(jié)點(diǎn)運(yùn)行時(shí)信息(如TaskTracker基本信息、節(jié)點(diǎn)資源使用情況、各任務(wù)運(yùn)行狀態(tài)等)以心跳(heartbeat)的形式封裝起來(lái)。這些信息都被封裝到類TaskTrackerStatus中,該類是可序列化的,TaskTracker每次發(fā)送心跳時(shí),必須重新構(gòu)造一個(gè)TaskTrackerStatus對(duì)象。
2) Hadoop任務(wù)調(diào)度器是一個(gè)可插拔模塊,用戶可以自己的實(shí)際需求設(shè)計(jì)調(diào)度器,新的調(diào)度器需要繼承TaskScheduler類。溫度感知的調(diào)度器進(jìn)行任務(wù)調(diào)度前需要從心跳信息中提取出TaskTracker溫度信息,判斷該TaskTracker的CPU溫度是否超過(guò)設(shè)定的高溫閾值,如果低于高溫閾值,則進(jìn)行正常的調(diào)度;否則,不給該TaskTracker分配任務(wù)。該算法需要在新的調(diào)度器中實(shí)現(xiàn),溫度感知的任務(wù)調(diào)度算法如下所示。
算法1 溫度感知的任務(wù)調(diào)度算法
Input:
TaskTrackerStatus/*修改后的心跳信息對(duì)象*/
TempThreshold/*高溫閾值*/
TaskTracker/*待調(diào)度TaskTracker*/
Output:
/*是否分配任務(wù)標(biāo)識(shí)*/
Steps:
算法輸入?yún)?shù)包括心跳信息、高溫閾值與待調(diào)度TaskTracker。算法第8)行調(diào)用調(diào)度器TaskScheduler類中assignTasks函數(shù)為待調(diào)度的TaskTracker分配新任務(wù)。
4.2.2 基于健康監(jiān)測(cè)腳本的實(shí)現(xiàn)方法
在Hadoop中,節(jié)點(diǎn)健康監(jiān)控NodeHealthChecker Service線程允許Hadoop管理員配置特定的健康監(jiān)測(cè)腳本,該腳本中可添加任何檢查語(yǔ)句作為節(jié)點(diǎn)是否健康運(yùn)行的依據(jù)。腳本運(yùn)行時(shí)如果檢測(cè)到該節(jié)點(diǎn)處于不健康狀態(tài),將輸出以“ERROR”開(kāi)頭的不健康信息。NodeHealthCheckerService線程一方面周期性調(diào)用健康監(jiān)測(cè)腳本對(duì)節(jié)點(diǎn)進(jìn)行健康檢查;另一方面對(duì)腳本的輸出進(jìn)行檢查,一旦發(fā)現(xiàn)腳本輸出中出現(xiàn)“ERROR”關(guān)鍵字,此時(shí)便認(rèn)為該節(jié)點(diǎn)處于不健康狀態(tài),此時(shí)該節(jié)點(diǎn)將被標(biāo)記為“unhealthy”并通過(guò)心跳告知JobTracker。當(dāng)JobTracker收到節(jié)點(diǎn)“unhealthy”心跳后,將該節(jié)點(diǎn)節(jié)點(diǎn)加入黑名單中,不再為其分配新的任務(wù)。當(dāng)然,只要該節(jié)點(diǎn)上的TaskTracker服務(wù)處于活動(dòng)狀態(tài),健康監(jiān)測(cè)腳本則仍處于運(yùn)行狀態(tài),當(dāng)發(fā)現(xiàn)節(jié)點(diǎn)重新進(jìn)入“healthy”狀態(tài)后,JobTracker會(huì)立刻將節(jié)點(diǎn)從黑名單中移除,使節(jié)點(diǎn)重新進(jìn)入工作狀態(tài)。腳本偽代碼如下所示。
算法2 健康監(jiān)測(cè)算法
Input:
NodeStatus/*節(jié)點(diǎn)狀態(tài)信息*/
TempThreshold/*高溫閾值*/
Output:
/*節(jié)點(diǎn)健康狀態(tài)信息*/
Steps:
算法第2)行判斷節(jié)點(diǎn)實(shí)際溫度大于高溫閾值,輸出錯(cuò)誤信息并設(shè)置節(jié)點(diǎn)健康狀態(tài)為“unhealthy”;當(dāng)算法判斷出節(jié)點(diǎn)溫度低于高溫閾值后,輸出溫度正常信息,設(shè)置節(jié)點(diǎn)健康狀態(tài)為“healthy”,算法第10)行將節(jié)點(diǎn)健康狀態(tài)信息返回。特別地,需要考慮怎樣合理地確定高溫閾值(threshold)參數(shù)的值,需要考慮集群中每臺(tái)機(jī)器的硬件特點(diǎn),對(duì)每個(gè)節(jié)點(diǎn)的高溫閾值進(jìn)行個(gè)性化設(shè)定。一方面要考慮到高溫對(duì)作業(yè)執(zhí)行的影響,另一方面也需要考慮到高溫對(duì)節(jié)點(diǎn)硬件的損壞可能性?;诮】当O(jiān)測(cè)的腳步實(shí)現(xiàn)方法相比基于心跳信息修改的實(shí)現(xiàn)方法較為簡(jiǎn)單,不需要修改MapReduce調(diào)度源代碼。
5.1 實(shí)驗(yàn)環(huán)境
項(xiàng)目組搭建了擁有22個(gè)同構(gòu)節(jié)點(diǎn)的Hadoop集群實(shí)驗(yàn)環(huán)境,其中,NameNode與SecondNameNode分別獨(dú)立為一個(gè)節(jié)點(diǎn),其余20節(jié)點(diǎn)為DataNode (5RACK×4 DataNode),實(shí)驗(yàn)環(huán)境拓?fù)浣Y(jié)構(gòu)如圖3所示。
為了控制實(shí)驗(yàn)過(guò)程中的Map任務(wù)數(shù)量,達(dá)到控制實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)與計(jì)算量的目的,特將數(shù)據(jù)塊分塊大小配置為512 MB,即dfs.block.size=512 MB。單個(gè)DataNode節(jié)點(diǎn)上Map與Reduce任務(wù)Slot資源槽數(shù)設(shè)置為1,即配置項(xiàng)mapred.tasktracker.map. tasks.maximum=1與mapred.tasktracker.reduce. tasks. maximum=1。能耗數(shù)據(jù)測(cè)量方面,實(shí)驗(yàn)采用北電電力監(jiān)測(cè)儀(USB智能版),數(shù)據(jù)采樣頻率設(shè)置為1秒/次,各節(jié)點(diǎn)能耗數(shù)據(jù)(包括瞬時(shí)功率、電流值、電壓值、能耗累加值等)可通過(guò)USB接口實(shí)時(shí)地傳輸?shù)侥芎臄?shù)據(jù)監(jiān)測(cè)機(jī)上,實(shí)現(xiàn)能耗數(shù)據(jù)的收集。實(shí)驗(yàn)總體環(huán)境描述如表1所示。
5.2 高溫對(duì)任務(wù)及能耗的影響分析
為了精確地測(cè)量出節(jié)點(diǎn)CPU溫度對(duì)任務(wù)運(yùn)行時(shí)間及節(jié)點(diǎn)能耗的影響,本實(shí)驗(yàn)將WordCount、TeraSort、NuthIndex、-means、PageRank這5種作業(yè)調(diào)度到配置相同但溫度不同的節(jié)點(diǎn)上。本實(shí)驗(yàn)中涉及到的5種作業(yè)參數(shù)配置如表2所示。
表1 總體實(shí)驗(yàn)環(huán)境描述
表2 作業(yè)類型說(shuō)明
按照表3所示配置,將作業(yè)所有任務(wù)調(diào)度到單節(jié)點(diǎn)上執(zhí)行。實(shí)驗(yàn)分為2組,一組節(jié)點(diǎn)散熱良好,CPU溫度控制在50℃~75℃之間;另一組節(jié)點(diǎn)具有散熱故障,CPU溫度控制在75℃~90℃之間。實(shí)驗(yàn)進(jìn)行10次后取平均值,分別關(guān)注CPU溫度對(duì)作業(yè)完成時(shí)間、節(jié)點(diǎn)功耗、CPU利用率以及任務(wù)的計(jì)算能力的影響。
5.2.1 高溫對(duì)CPU利用率及節(jié)點(diǎn)能耗的影響
如表3所示為高溫與常溫任務(wù)執(zhí)行節(jié)點(diǎn)CPU利用率及功耗的對(duì)比。從表中對(duì)比數(shù)據(jù)可以看出,在執(zhí)行相同作業(yè)的條件下,高溫節(jié)點(diǎn)的CPU利用率都高于常溫節(jié)點(diǎn),并且,高溫節(jié)點(diǎn)任務(wù)的平均功率都高于常溫節(jié)點(diǎn),證明了3.3節(jié)中提出的MapReduce能耗模型的正確性。
表3 高溫與常溫任務(wù)執(zhí)行節(jié)點(diǎn)CPU利用率及功耗的對(duì)比
表4表明了高溫與常溫節(jié)點(diǎn)CPU利用率及能耗之間的靜態(tài)特征。為了測(cè)量CPU利用率與系統(tǒng)功耗的之間動(dòng)態(tài)性關(guān)系,在原WordCount、TeraSort、NuthIndex、-means、PageRank這5種作業(yè)的基礎(chǔ)上,本實(shí)驗(yàn)加入Bayes任務(wù),并通過(guò)10臺(tái)能耗監(jiān)測(cè)儀對(duì)作業(yè)運(yùn)行中的所有DataNode節(jié)點(diǎn)功耗進(jìn)行實(shí)驗(yàn)采樣,利用時(shí)間戳關(guān)聯(lián)實(shí)時(shí)功耗數(shù)據(jù)與節(jié)點(diǎn)CPU利用率。
通過(guò)圖4可以看出6種作業(yè)實(shí)時(shí)功耗與CPU利用率之間聯(lián)系緊密;當(dāng)CPU利用率上升時(shí),能耗上升;當(dāng)CPU利用率下降時(shí),能耗下降;CPU變化趨勢(shì)與能耗變化趨勢(shì)基本一致。事實(shí)上,通過(guò)圖4表明了3.3節(jié)中提出的MapReduce能耗模型的可行性。
通過(guò)大量的能耗數(shù)據(jù)分析得出常溫與高溫條件下的節(jié)點(diǎn)功耗與CPU利用率之間的關(guān)系(包括理論值與實(shí)驗(yàn)值)如圖4所示。其中圖4(a)表示散熱良好的節(jié)點(diǎn),圖4(b)表示高溫節(jié)點(diǎn),即具有散熱故障的節(jié)點(diǎn)。實(shí)驗(yàn)值取大量測(cè)試數(shù)據(jù)的平均值,如CPU利用率在50%時(shí)功耗測(cè)試數(shù)據(jù)為{83.1,85.7,88.4,87.5,89.2,84.7,90.3,83.5,82.4,87.2,82.6, 85.8,86.9,85.1,84.3,88.2,86.1,83.2,88.8, 86.8},取其平均值85.99為其實(shí)驗(yàn)值。實(shí)驗(yàn)中本文發(fā)現(xiàn)散熱良好(常溫)的與出現(xiàn)散熱故障(高溫)的節(jié)點(diǎn)功耗存在較大的差異,散熱良好的節(jié)點(diǎn)靜態(tài)功耗為[64,65] W,運(yùn)行時(shí)CPU溫度穩(wěn)定在50℃~75℃;而出現(xiàn)散熱故障的節(jié)點(diǎn)靜態(tài)功耗為[70,72] W,運(yùn)行時(shí)CPU在75℃~90℃?;贑PU利用率估算的能耗模型的計(jì)算方法(式(5)與式(6)),可得出散熱良好節(jié)點(diǎn)CPU利用率與功耗之間的理論函數(shù)為
其中,表示CPU利用率,()表示CPU利用率為時(shí)節(jié)點(diǎn)的功耗。節(jié)點(diǎn)靜態(tài)功耗為64 W,峰值功耗為110 W,由式(6)得出參數(shù)。同樣方法可得到出現(xiàn)散熱故障的節(jié)點(diǎn)CPU利用率與功耗之間的理論函數(shù)
(9)
當(dāng)節(jié)點(diǎn)出現(xiàn)散熱故障時(shí),節(jié)點(diǎn)靜態(tài)功耗為70 W,峰值功耗為135 W,參數(shù)。式(8)、式(9)及圖4中所示的CPU與功耗關(guān)系曲線與文獻(xiàn)[57]中的結(jié)論一致,表明本文結(jié)論的正確性。
5.2.2 高溫對(duì)任務(wù)計(jì)算能力及作業(yè)完成時(shí)間的影響
如表5所示為高溫與常溫任務(wù)執(zhí)行節(jié)點(diǎn)任務(wù)完成時(shí)間及計(jì)算能力的對(duì)比。如表5數(shù)據(jù)所示,當(dāng)節(jié)點(diǎn)處于高溫狀態(tài)時(shí),5種作業(yè)Map階段與Reduce階段計(jì)算能力都比常溫狀態(tài)時(shí)慢,表明過(guò)高的節(jié)點(diǎn)溫度減慢任務(wù)的處理速度。高溫使節(jié)點(diǎn)計(jì)算能力下降,會(huì)增加作業(yè)完成時(shí)間。所以,當(dāng)節(jié)點(diǎn)處于高溫狀態(tài)時(shí),5種作業(yè)運(yùn)行時(shí)間都不同程度的比常溫狀態(tài)時(shí)耗時(shí)長(zhǎng)。
另外,實(shí)驗(yàn)過(guò)程中本文發(fā)現(xiàn),當(dāng)節(jié)點(diǎn)CPU溫度高于90℃并持續(xù)一段時(shí)間后,大量節(jié)點(diǎn)出現(xiàn)宕機(jī)的現(xiàn)象,并且溫度越高,宕機(jī)的現(xiàn)象越嚴(yán)重。
5.3 算法對(duì)作業(yè)運(yùn)行時(shí)間及能耗的影響
本實(shí)驗(yàn)選取了FIFO和Capacity這2種原作業(yè)調(diào)度策略(簡(jiǎn)稱Org-FIFO和Org-Capacity),并在FIFO和Capacity作業(yè)調(diào)度策略基礎(chǔ)上添加了溫度感知的功能(簡(jiǎn)稱TempA-FIFO和TempA-Capacity),在此基礎(chǔ)上對(duì)本文提出的溫度感知的任務(wù)調(diào)度模型進(jìn)行實(shí)驗(yàn)分析。
本節(jié)實(shí)驗(yàn)從22節(jié)點(diǎn)構(gòu)成的集群中分離出2組子集群進(jìn)行對(duì)比實(shí)驗(yàn)。2組子集群都分別擁有10個(gè)節(jié)點(diǎn),并由8個(gè)散熱良好和2個(gè)具有散熱故障的節(jié)點(diǎn)組成(節(jié)點(diǎn)CPU溫度始終高于高溫閾值)。不同的是,子集群1利用TempA-FIFO及TempA-Capacity調(diào)度策略執(zhí)行表6中的作業(yè) (設(shè)置高溫閾值為80℃),而子集群2則采用Org-FIFO及Org-Capacity執(zhí)行表6中的作業(yè)。實(shí)驗(yàn)中采用的作業(yè)及參數(shù)配置如表6所示。
表5 高溫與常溫任務(wù)執(zhí)行節(jié)點(diǎn)任務(wù)完成時(shí)間及計(jì)算能力的對(duì)比
表6 作業(yè)類型說(shuō)明
實(shí)驗(yàn)分別將表6中作業(yè)在2個(gè)子集群中運(yùn)行10次,記錄作業(yè)運(yùn)行時(shí)間及能耗,取平均值后得到表7中的數(shù)據(jù)。其中,作業(yè)總能耗為各節(jié)點(diǎn)在作業(yè)運(yùn)行過(guò)程中能耗的總和。實(shí)驗(yàn)過(guò)程中,算法設(shè)置節(jié)點(diǎn)CPU溫度超過(guò)閾值80℃時(shí),該節(jié)點(diǎn)將不接受任何任務(wù)。在任務(wù)分配過(guò)程中,集群1中的任務(wù)全部分配到CPU溫度低于高溫閾值的節(jié)點(diǎn)上,高于高溫閾值的節(jié)點(diǎn)始終處于空閑狀態(tài)。而集群2中,任務(wù)則隨機(jī)分布到集群各節(jié)點(diǎn)中。如表7所示為實(shí)驗(yàn)作業(yè)完成時(shí)間及能耗對(duì)比數(shù)據(jù)總表。
圖5所示為Org-FIFO與TempA-FIFO調(diào)度下的作業(yè)完成時(shí)間對(duì)比,TempA-FIFO較Org-FIFO分別提高作業(yè)WordCount、TeraSort、NuthIndex、-means、PageRank及Bayes完成時(shí)間30 s、22 s、50 s、17 s、82 s、77 s;提升率分別為3.257%、3.509%、5.995%、3.786%、13.099%、13.775%,作業(yè)之間的差異性使各作業(yè)的提升率不同。
如圖6所示為Org-Capacity與TempA-Capacity調(diào)度下的作業(yè)完成時(shí)間對(duì)比。Org-Capacity較TempA-Capacity分別提高作業(yè)WordCount、TeraSort、NuthIndex、-means、PageRank及Bayes完成時(shí)間51 s、18 s、48 s、19 s、61 s、78 s;提升率分別為5.849%、3.025%、5.79%、4.481%、9.967%、14.773%。
表7 作業(yè)完成時(shí)間及能耗對(duì)比
如圖7所示為Org-FIFO與TempA-FIFO作業(yè)完成能耗對(duì)比。TempA-FIFO相比Org-FIFO (WordCount、TeraSort、NuthIndex、-means、PageRank及Bayes 6種作業(yè))分別節(jié)能28 690 J、29 348 J、40 720 J、17 591 J、44 086 J、60 374 J;節(jié)能率分別為4.072%、5.633%、6.314%、5.194%、9.413%、13.918%。
如圖8所示為Org-Capacity與TempA-Capacity作業(yè)完成能耗對(duì)比。TempA-Capacity相比Org-Capacity (WordCount、TeraSort、NuthIndex、-means、PageRank及Bayes 6種作業(yè))分別節(jié)能58 693 J、41 817 J、89 838 J、19 855 J、34 669 J、70 602 J;節(jié)能率分別為8.741%、8.242%、14.106%、5.9%、7.895%、16.978%。
從實(shí)驗(yàn)數(shù)據(jù)可以發(fā)現(xiàn),本文算法對(duì)WordCount、TeraSort、NuthIndex及-means 4種作業(yè)完成時(shí)間及節(jié)能效率提升并不明顯,而PageRank及Bayes 2種作業(yè)有較為明顯的提升。實(shí)驗(yàn)過(guò)程中,發(fā)現(xiàn)PageRank及Bayes 2種作業(yè)在運(yùn)行過(guò)程中出現(xiàn)高溫節(jié)點(diǎn)觸發(fā)推測(cè)執(zhí)行機(jī)制概率較其他4種作業(yè)高,由此造成作業(yè)完成時(shí)間及節(jié)能效率提升較其他4種作業(yè)更為明顯。
大數(shù)據(jù)時(shí)代,數(shù)據(jù)量的高速增長(zhǎng)伴隨而來(lái)的是存儲(chǔ)與處理系統(tǒng)規(guī)模不斷的擴(kuò)大,使云計(jì)算中心的能耗成本不斷的提高。節(jié)能的分布式任務(wù)調(diào)度系統(tǒng)成為研究熱點(diǎn)。本文通過(guò)對(duì)已有的MapReduce任務(wù)調(diào)度模型的深入研究,發(fā)現(xiàn)調(diào)度系統(tǒng)并不關(guān)心擁有空閑資源槽節(jié)點(diǎn)當(dāng)前的溫度狀態(tài),一旦節(jié)點(diǎn)出現(xiàn)空閑資源槽,調(diào)度系統(tǒng)就盡最大努力為該節(jié)點(diǎn)分配合適的任務(wù)。此種調(diào)度策略最大程度上增加了系統(tǒng)資源利用率,使大多數(shù)作業(yè)能夠更快地被處理完畢。但實(shí)驗(yàn)表明當(dāng)TaskTracker處于高溫狀態(tài)時(shí),一方面使CPU利用率變高,導(dǎo)致節(jié)點(diǎn)能耗增大,任務(wù)處理速度下降,導(dǎo)致任務(wù)完成時(shí)間增加;另一方面,易發(fā)的宕機(jī)現(xiàn)象將直接導(dǎo)致任務(wù)的失敗,推測(cè)執(zhí)行機(jī)制容易使運(yùn)行時(shí)任務(wù)被迫中止。所以本文提出溫度感知的節(jié)能任務(wù)調(diào)度策略,將節(jié)點(diǎn)CPU溫度納入任務(wù)調(diào)度的決策信息,以避免少數(shù)高溫任務(wù)執(zhí)行節(jié)點(diǎn)對(duì)作業(yè)整體進(jìn)度的影響。算法實(shí)現(xiàn)方式上提出了基于心跳信息修改及基于健康監(jiān)測(cè)腳本的2種實(shí)現(xiàn)方案。最后,通過(guò)搭建真實(shí)的實(shí)驗(yàn)環(huán)境,精確的測(cè)量了節(jié)點(diǎn)CPU溫度對(duì)任務(wù)運(yùn)行時(shí)間及節(jié)點(diǎn)能耗的影響,證明了本文算法對(duì)不同類型作業(yè)任務(wù)完成時(shí)間及作業(yè)執(zhí)行能耗兩方面的改進(jìn)。
下一步工作主要是對(duì)MapReduce執(zhí)行能耗進(jìn)行建模。 MapReduce能耗模型是將來(lái)開(kāi)發(fā)Hadoop作業(yè)能耗監(jiān)控及優(yōu)化軟件的理論基礎(chǔ),能耗模型能夠?qū)崿F(xiàn)在作業(yè)執(zhí)行前對(duì)能耗進(jìn)行預(yù)測(cè),執(zhí)行過(guò)程中為節(jié)能調(diào)度系統(tǒng)提供調(diào)度依據(jù),執(zhí)行后對(duì)作業(yè)進(jìn)行能耗計(jì)算。
[1] 孟小峰, 慈祥. 大數(shù)據(jù)管理: 概念、技術(shù)與挑戰(zhàn)[J]. 計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-149. MENG X F, CI X. Big data management: concepts, techniques and challenges[J]. Journal of Computer Research and Development, 2013, 50(1): 146-149.
[2] GANTZ J, CHUTE C, MANFREDIZ A, et al. The diverse and exploding digital universe: an updated forecast of worldwide information growth through[EB/OL]. http://www.ifap.ru/library/ book268.pdf.
[3] Global action plan, an inefficient truth[R/OL]. Global action plan report, 2007. http://globalactionplan.org.uk.
[4] TIMES N Y. Power, pollution and the Internet [EB/OL]. http://www.nytimes.com/2012/09/23/technology/ data-ceneters-waste- vast-amounts-of-energy-belying-industry-image.html.
[5] BARROSO L A, HLZLE U. The datacenter as a computer: an introduction to the design of warehouse-scale machines [R]. Morgan: Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers, 2009.
[6] BORTHAKU D. The hadoop distributed file system: architecture and design[J]. Hadoop Project Website, 2007, 11(11):1-10.
[7] GHEMAWAT S, GOBIOFF H, LEUNG S T. The google gile system[C]//19th ACM Symposium on Operating System Principles. New York, ACM, c2003: 29-43.
[8] DEAN J, GHEMAWAT S. MapReduce: simplifed data processing on large clusters[C]//The Conference on Operating System Design and Implementation (OSDI). New York, ACM, c2004: 137-150.
[9] 王鵬, 孟丹, 詹劍鋒, 等. 數(shù)據(jù)密集型計(jì)算編程模型研究進(jìn)展[J]. 計(jì)算機(jī)研究與發(fā)展,2010,47(11):1993-2002. WANG P, MENG D, ZHAN JF, et al. Review of programming models for data-Intensive computing[J]. Journal of Computer Research and Development, 2010, 47(11): 1993-2002.
[10] LI D, WANG J E. Energy efficient redundant and inexpensive disk array[C]//The ACM SIGOPS European Workshop. New York, ACM, c2004: 29-35.
[11] 林闖, 田源, 姚敏. 綠色網(wǎng)絡(luò)和綠色評(píng)價(jià): 節(jié)能機(jī)制、模型和評(píng)價(jià)[J].計(jì)算機(jī)學(xué)報(bào),2011,34(4):593-612. LIN C, TIAN Y, YAO M. Green network and green evaluation: Mechanism, modeling and evaluation [J]. Chinese Journal of Computers, 2011, 34(4): 593-612.
[12] 廖彬, 于炯, 張?zhí)? 等. 基于分布式文件系統(tǒng)HDFS的節(jié)能算法[J]. 計(jì)算機(jī)學(xué)報(bào), 2013, 36(5):1047-1064. LIAO B, YU J, ZHANG T, et al. Energy-efficient algorithms for distributed file system HDFS[J]. Chinese Journal of Computers, 2013, 36(5): 1047-1064.
[13] ALBERS S. Energy-efficient algorithms [J]. Communications of the ACM, 2010, 53(5): 86-96.
[14] WIERMAN A, ANDREW L L, TANG A. Power-aware speed scaling in processor sharing systems[C]//The 28th Conference on Computer Communications (INFOCOM 2009). Piscataway, NJ, c2009: 2007-2015.
[15] ANDREW L L, LIN M, WIERMAN A. Optimality, fairness, and robustness in speed scaling designs[C]//ACM International Conference on Measurement and Modeling of International Computer Systems (SIGMETRICS 2010). New York, ACM, c2010: 37-48.
[16] NEUGEBAUER R, MCAULEY D. Energy is just another resource: energy accounting and energy pricing in the nemesis OS[C]//The 8th IEEE Workshop on Hot Topics in Operating Systems. Piscataway, NJ, c2001: 59-64.
[17] FLINN J, SATYANARAYANAN M. Managing battery lifetime with energy-aware adaptation [J]. ACM Transactions on Computer Systems (TOCS), 2004, 22(2): 179-182.
[18] MEISNER D, GOLD B T, WENISCH T F. PowerNap: eliminating server idle power [J]. ACM SIGPLAN Notices, 2009, 44(3): 205-216.
[19] YE K, JIANG X, YE D, et al. Two optimization mechanisms to improve the isolation property of server consolidation in virtualized multi-core server[C]//The 12th IEEE International Conference on High Performance Computing and Communications. Melbourne, Australia, c2010: 281-288.
[20] CHOI J, GOVINDAN S, JEONG J, et al. Power consumption prediction and power-aware packing in consolidated environments[J]. IEEE Transactions on Computers, c2010, 59(12):1640-1654.
[21] YE K, JIANG X, HUANG D, et al. Live migration of multiple virtual machines with resource reservation in cloud computing environments[C]//The 4th IEEE International Conference on Cloud Computing. Washington, USA, c2011: 267-274.
[22] LIAO X, JIN H, LIU H. Towards a green cluster through dynamic remapping of virtual machines[J]. Future Generation Computer Systems, 2012, 28(2):469-477.
[23] JANG J W, JEON M, KIM H S, et al. Energy reduction in consolidated servers through memory-aware virtual machine scheduling[J]. IEEE Transactions on Computers, 2011, 99(1): 552-564.
[24] WANG X, WANG Y. Coordinating power control and performance management for virtualized server cluster[J]. IEEE Transactions on Parallel and Distributed Systems, 2011, 22(2):245-259.
[25] WANG Y, WNAG X, CHEN M, et al. Partic: power-aware response time control for virtualized web servers[J]. IEEE Transactions on Parallel and Distributed Systems, 2011, 22(2):323-336.
[26] DASGUPTA G, SHARMA A, VERMA A, et al. Workload management for power efficiency in virtualized data-centers[J]. Communications of the ACM, 2011, 54(7): 131-141.
[27] SRIKANTAIAH S, KANSAL A, ZHAO F. Energy aware consolidation for cloud computing [J]. Cluster Computing, 2009, 12(1): 1-15.
[28] GARG S K, YEO C S, ANANDASIVAM A, et al. Environment-conscious scheduling of HPC applications on distributed cloud-oriented data centers [J]. Journal of Parallel and Distributed Computing, 2010, 71(6): 732-749.
[29] KUSIC D, KEPHART J O, HANSON J E, et al. Power and performance management of virtualized computing environments via lookahead control [J]. Cluster Computing, 2009, 12(1): 1-15.
[30] SONG Y, WANG H, LI Y,et alMulti-tiered on-demand resource scheduling for VM-based data center[C]//Proceedings of the 9th IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2009). Piscataway, NJ, c2009: 148-155.
[31] GMACH D, ROLIA J, CHERKASOVA L, et al. resource pool management: Reactive versus proactive or let’s be friends [J]. Computer Networks, 2009, 53(17): 2905-2922.
[32] BUYYA R, BELOGLAZOV A, ABAWAJY J. Energy-efficient management of data center resources for cloud computing: a vision, architectural elements, and open challenges[J]. Eprint Arxiv, 2010,12(4): 6-17.
[33] KIM K H, BELOGLAZOV A, BUYYA R. Power-aware provisioning of cloud resources for real-time services[C]//The 7th International Workshop on Middleware for Grids. New York, c2009: 1-6.
[34] 王意潔, 孫偉東, 周松, 等. 云計(jì)算環(huán)境下分布存儲(chǔ)關(guān)鍵技術(shù)[J].軟件學(xué)報(bào),2012,23(4):962-986.
WANG Y J, SUN W D, ZHOU S, et al. Key technologies of distributed storage for cloud computing[J]. Journal of Software, 2012,23(4): 962-986.
[35] GREENAN K M, LONG D D E, MILLER E L, et al. A spin-up saved is energy earned: achieving power-efficient, erasure-coded storage[C]//The HotDep 2008. Berkeley: USENIX Association, c2008:4.
[36] WEDDLE C, OLDHAM M, QIAN J, et al. A gear-shifting power-aware raid[J]. ACM Transactions on Storage, 2007, 3(3): 1553-1569.
[37] LI D, WANG J. Conserving energy in conventional disk based RAID systems[C]//The 3rd Int Workshop on Storage Network Architecture and Parallel I/Os (SNAPI 2005). Piscataway, NJ, c2005: 65-72.
[38] YAO X, WANG J. Rimac: a novel redundancy-based hierarchical cache architecture for energy efficient, high performance storage systems[C]//The EuroSys. New York, ACM, c2006: 249-262.
[39] PINHEIRO E, BIANCHINI R, DUBNICKI C. Exploiting redundancy to conserve energy in storage systems[C]//The SIGMetrics Performance 2006. New York, ACM, c2006: 15-26.
[40] NARAYANAN D, DONNELLY A, ROWSTRON A. Write off-loading: practical power management for enterprise storage[J]. ACM Transactions on Storage (TOS), 2008, 4(3):253-267.
[41] STORER M, GREENAN K, MILLER E, et al. Replacing tape with energy efficient, reliable, disk-based archival storage[C]//The FAST 2008. New York, ACM, c2008: 1-16.
[42] ZHU Q, CHEN Z, TAN L, et al. Hibernator: Helping disk arrays sleep through the winter[C]//The 20th ACM Symposium on Operating Systems Principles (SOSP). New York, ACM, c2005: 177-190.
[43] VASIC N, BARISITS M, SALZGEBER V. Making cluster applications energy-aware[C]//The ACDC 2009. New York, ACM, c2009: 37-42.
[44] 廖彬, 于炯, 孫華, 等. 基于存儲(chǔ)結(jié)構(gòu)重配置的分布式存儲(chǔ)系統(tǒng)節(jié)能算法[J].計(jì)算機(jī)研究與發(fā)展, 2013, 50(1): 3-18. LIAO B, YU J, SUN H, et al. Energy-efficient algorithms for distributed storage system based on data storage structure reconfiguration[J]. Journal of Computer Research and Development, 2013, 50(1): 3-18.
[45] LIAO B, YU J, SUN H, et al. A QoS-aware dynamic data replica deletion strategy for distributed storage systems under cloud computing environments[C]//Cloud and Green Computing (CGC), 2012 Second International Conference. IEEE, c2012: 219-225.
[46] 廖彬, 于炯, 錢育蓉, 等. 基于可用性度量的分布式文件系統(tǒng)節(jié)點(diǎn)失效恢復(fù)算法[J].計(jì)算機(jī)科學(xué), 2013, 40(1):144-149.
LIAO B, YU J, QIAN Y R, et al. The node failure recovery algorithm for distributed file system based on measurement of data availability[J].Computer Sicence, 2013, 40(1): 144-149.
[47] ZHU Q, DAVID F M, DEVARAJ C F, et al. Reducing energy consumption of disk storage using power-aware cache management[C]//The HPCA 2004. Piscataway, NJ, c2004: 118-129.
[48] LEVERICH J, KOZYRAKIS C. On the energy (in)efficiency of hadoop clusters [J]. ACM SIGOPS Operating Systems Review, 2010, 44 (1): 61-65.
[49] LANG W, PATEL J M. Energy management for mapreduce clusters[J]. Proceedings of the VLDB Endowment, 2010, 3(1-2): 129-139.
[50] CHEN Y, KEYS L, KATZ R H. Towards energy effcient mapreduce [R]. Berkeley: EECS Department, University of California, 2009-10-9.
[51] WIRTZ T, GE R. Improving MapReduce energy efficiency for computation intensive workloads[C]//Green Computing Conference and Workshops (IGCC). IEEE, c2011: 1-8.
[52] GOIRI í, LE K, NGUYEN T D, et al. GreenHadoop: leveraging green energy in data-processing frameworks[C]//The 7th ACM european conference on Computer Systems. ACM, c2012: 57-70.
[53] CARDOSA M, SINGH A, PUCHA H, et al. Exploiting Spatio-Temporal Tradeoffs for Energy Efficient MapReduce in the Cloud[D]. Department of Computer Science and Engineering, University of Minnesota, 2010.
[54] CHEN Y, GANAPATHI A, KATZ R H. To compress or not to compress-compute vs. IO tradeoffs for mapreduce energy efficiency[C]//The First ACM SIGCOMM Workshop on Green Networking. New Delhi, India, c2010: 23-28.
[55] 宋杰, 李甜甜, 朱志良, 等. 云數(shù)據(jù)管理系統(tǒng)能耗基準(zhǔn)測(cè)試與分析[J]. 計(jì)算機(jī)學(xué)報(bào),2013,36(7):1485-1499.
SONG J, LI T T, ZHU Z L, et al. Benchmarking and analyzing the energy consumption of cloud data management system [J]. Chinese Journal of Computers, 2013, 36(7): 1485-1492.
[56] ANDREWS M, ANTA A F, ZHANG L, et al. Routing for energy minimization in the speed scaling model[C]//The 29th IEEE Conference on Computer Communications (INFOCOM’10). San Diego, USA, c2010: 1-9.
[57] BARROSO L A, HOLZLE U. The case for energy-proportional computing[J]. Computer, 2007, 40(12): 33-37.
[58] 林闖,田源,姚敏.綠色網(wǎng)絡(luò)和綠色評(píng)價(jià):節(jié)能機(jī)制、模型和評(píng)價(jià)[J].計(jì)算機(jī)學(xué)報(bào),2011,34(4):593-612.
LIN C, TIAN Y, YAO M. Green network and green evaluation: Mechanism, modeling and evaluation [J]. Chinese Journal of Computers, 2011, 34(4): 593-612.
Temperature aware energy-efficient task scheduling strategies for mapreduce
LIAO Bin1,ZHANG Tao2,YU Jiong3, LIU Ji1,YIN Lu-tong3, GUO Gang3
(1. College of Statistics and Information, Xinjiang University of Finance and Economics, Urumqi 830012, China; 2. Department of Medical Engineering and Technology, Xinjiang Medical University, Urumqi 830011, China; 3. School of Software, Xinjiang University, Urumqi 830008, China)
The main difference among the existing MapReduce task schedulers such as FIFO, Fair, Capacity, LATE and Deadline Constraint is their choice of operation strategy of the queue and job. On the count of the task selection strategies of these task schedulers are basically the same, taking the data-locality as the key factor of selection, they all ignore the current state of the temperature of the TaskTracker. The experiments show that when the TaskTracker is in a state of high temperature it will cause some negative results. On one hand, utilization of the CPU becomes higher, which means more energy is consumed at each node. And as a result of task processing speed dropping off, more time will be needed to complete the same task. On the other hand, the prone downtime phenomenon will directly lead to the failure of the task, and speculative execution mechanism is easy to make the runtime task suspend. Temperature aware energy-efficient task scheduling strategy is put forward to solve the problem. CPU temperature of the node was put into the task scheduling decision-making information to avoid bad impact on the overall progress of the job form the task execution nodes with a high temperature. The experimental results show that the algorithm can avoid allocating task to high temperature nodes, which effectively shorten the job completion time, reduce energy consumption of job execution and improve system stability.
green computing, MapReduce, task scheduling, temperature aware
TP393.09
A
10.11959/j.issn.1000-436x.2016008
2014-10-14;
2015-01-07
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61562078, No.61262088, No.71261025); 新疆財(cái)經(jīng)大學(xué)博士科研啟動(dòng)基金資助項(xiàng)目(No.2015BS007)
The National Natural Science Foundation of China (No.61562078, No.61262088, No.71261025), The Doctoral Research Foundation of Xinjiang University of Finance and Economics(No.2015BS007)
廖彬(1986-),男,四川內(nèi)江人,博士,新疆財(cái)經(jīng)大學(xué)副教授,主要研究方向?yàn)榫G色計(jì)算、數(shù)據(jù)庫(kù)系統(tǒng)理論及數(shù)據(jù)挖掘等。
張?zhí)眨?986-),女,新疆烏魯木齊人,新疆醫(yī)科大學(xué)講師,主要研究方向?yàn)樵朴?jì)算、醫(yī)學(xué)大數(shù)據(jù)分析等。
于炯(1964-),男,北京人,博士,新疆大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)格計(jì)算、大數(shù)據(jù)與云計(jì)算等。
劉繼(1974-),男,新疆烏魯木齊人,博士,新疆財(cái)經(jīng)大學(xué)教授,主要研究方向?yàn)樾畔⒐芾砑皵?shù)據(jù)挖掘。
尹路通(1992-),男,河南信陽(yáng)人,新疆大學(xué)碩士生,主要研究方向?yàn)楣?jié)能計(jì)算、大數(shù)據(jù)計(jì)算模式等。
郭剛(1990-),男,新疆烏魯木齊人,新疆大學(xué)碩士生,主要研究方向?yàn)楣?jié)能計(jì)算、大數(shù)據(jù)計(jì)算模式等。