廖 彬 張 陶 于 炯 尹路通 郭 剛 國冰磊
1(新疆財經(jīng)大學統(tǒng)計與信息學院 烏魯木齊 830012)2(新疆大學信息科學與工程學院 烏魯木齊 830046)3(新疆醫(yī)科大學醫(yī)學工程技術學院 烏魯木齊 830011)4 (新疆大學軟件學院 烏魯木齊 830008)
?
MapReduce能耗建模及優(yōu)化分析
廖彬1,4張?zhí)?,3于炯2,4尹路通4郭剛4國冰磊2,4
1(新疆財經(jīng)大學統(tǒng)計與信息學院烏魯木齊830012)2(新疆大學信息科學與工程學院烏魯木齊830046)3(新疆醫(yī)科大學醫(yī)學工程技術學院烏魯木齊830011)4(新疆大學軟件學院烏魯木齊830008)
(liaobin665@163.com)
云計算中心規(guī)模的不斷擴大以及設計時對能耗因素的忽略,使其日益暴露出高能耗低效率的問題.為提高MapReduce框架能耗利用率,首先對MapReduce任務進行了能耗建模,提出基于CPU利用率估算、主要部件能耗累加及平均功耗估算的任務能耗模型,并在此基礎上建立了MapReduce作業(yè)能耗模型.其次,基于能耗模型對能耗優(yōu)化進行了分析,提出從優(yōu)化MapReduce作業(yè)執(zhí)行能耗、減少MapReduce任務等待能耗與提高MapReduce集群能源利用效率3個方向對MapReduce進行能耗優(yōu)化.再次,提出異構環(huán)境下的數(shù)據(jù)放置策略減小MapReduce任務等待能耗,提出截止時間約束下的最小資源分配方法提高MapReduce作業(yè)能耗利用效率.通過大量的實驗及能耗數(shù)據(jù)分析,驗證了能耗模型及能耗優(yōu)化方法的有效性.
綠色計算;任務調(diào)度;能耗建模;節(jié)能分析;數(shù)據(jù)布局
數(shù)據(jù)的產(chǎn)生過程在經(jīng)歷被動和主動2種產(chǎn)生過程后,發(fā)展到了自動產(chǎn)生階段,預示著大數(shù)據(jù)時代的來臨.數(shù)據(jù)從簡單的處理對象開始轉變?yōu)橐环N基礎性資源,如何更好地管理和利用大數(shù)據(jù)已經(jīng)成為普遍關注的話題,大數(shù)據(jù)的規(guī)模效應給數(shù)據(jù)存儲、管理以及數(shù)據(jù)分析帶來了極大的挑戰(zhàn)[1].據(jù)文獻[2]統(tǒng)計,2007年全球數(shù)據(jù)量達到281 EB,而2007—2011年這5年時間內(nèi)全球數(shù)據(jù)量增長了10倍.數(shù)據(jù)量的高速增長伴隨而來的是存儲與處理系統(tǒng)規(guī)模不斷擴大,這使得運營成本不斷提高,其成本不僅包括硬件、機房、冷卻設備等固定成本,還包括IT設備與冷卻設備的電能消耗等其他開銷,并且,系統(tǒng)的高能耗將導致過量溫室氣體的排放并引發(fā)環(huán)境問題.事實上,在能源價格上漲、數(shù)據(jù)中心存儲規(guī)模不斷擴大的今天,高能耗已逐漸成為制約云計算與大數(shù)據(jù)快速發(fā)展的一個主要瓶頸[1].據(jù)文獻[3]統(tǒng)計,目前IT領域的CO2排放量占人類總排放量的2%,而到2020年這一比例將翻番.2008年路由器、交換機、服務器、冷卻設備、數(shù)據(jù)中心等互聯(lián)網(wǎng)設備總共消耗8 680億kW·h,占全球總耗電量的5.3%.紐約時報與麥肯錫經(jīng)過一年的聯(lián)合調(diào)查,最終在《紐約時報》上發(fā)表了“Power,pollution and the Internet”[4],調(diào)查顯示Google數(shù)據(jù)中心的平均功耗為3億W,Facebook則達到了0.6億W,但巨大的能耗中卻只有6%~12%的能耗被用于處理相應用戶的請求.與此同時,Barroso等人在文獻[5]中對Google內(nèi)部5 000多臺服務器進行長達半年的調(diào)查統(tǒng)計結果表明:服務器在大部分時間里利用率都在10%~50%之間,服務器在負載很低(小于10%)的情況下電能消耗也超過了峰值能耗的50%.
Hadoop[6]作為新的分布式存儲與計算架構,參考Google的分布式存儲系統(tǒng)GFS[7]實現(xiàn)了分布式文件存儲HDFS;參考MapReduce[8]計算模型實現(xiàn)了自己的分布式計算框架;參考BigTable實現(xiàn)了分布式數(shù)據(jù)庫HBase.由于能夠部署在通用平臺上,并且具有可擴展性(scalable)、低成本(economical)、高效性(efficient)與可靠性(reliable)等優(yōu)點,使其在分布式計算領域得到了廣泛運用,并且已逐漸成為工業(yè)與學術屆事實上的海量數(shù)據(jù)并行處理標準[9].雖然Hadoop擁有諸多優(yōu)點,但是和Google服務器一樣,Hadoop集群內(nèi)部服務器同樣存在嚴重的高能耗低利用率問題[10].Hadoop主要由分布式存儲系統(tǒng)HDFS與分布式任務執(zhí)行框架MapReduce兩部分組成,現(xiàn)有研究大多從分布式存儲系統(tǒng)HDFS入手解決Hadoop的能耗問題,針對MapReduce框架能耗優(yōu)化方面的研究則相對較少.大量研究圍繞通過對存儲資源的有效調(diào)度,在不影響系統(tǒng)性能的前提條件下將部分存儲節(jié)點調(diào)整到低能耗模式,以達到節(jié)能的目的.為提高MapReduce的能耗利用效率,本文做了如下工作:
1) 對MapReduce系統(tǒng)模型進行了分析,提出3種任務級的能耗模型:基于CPU利用率估算的能耗模型、基于主要部件能耗累加的能耗模型及基于平均功耗估算的能耗模型,并在這3種模型基礎上得到MapReduce作業(yè)能耗模型.
2) 對MapReduce作業(yè)能耗模型優(yōu)化分析的基礎上,對優(yōu)化MapReduce作業(yè)執(zhí)行能耗、減少MapReduce任務等待能耗與提高MapReduce集群能源利用效率3個方面的能耗優(yōu)化方法進行了討論.
3) 提出異構環(huán)境下的數(shù)據(jù)放置策略以減少異構環(huán)境下的MapReduce任務等待能耗;推導出截止時間約束下的最小資源槽slot分配計算公式,計算適應當前作業(yè)的最小資源數(shù)量,提高MapReduce作業(yè)能源利用效率.
4) 大量的實驗及能耗數(shù)據(jù)分析表明本文所提能耗模型及能耗優(yōu)化方法的有效性.
傳統(tǒng)的IT系統(tǒng)一方面通過超額資源供給與冗余設計以保障QoS與系統(tǒng)可靠性[11],另一方面負載均衡算法專注于將用戶請求平均分發(fā)給集群中的所有服務器以提高系統(tǒng)的可用性,這些設計原則都沒有考慮到系統(tǒng)的能耗因素,這使得IT系統(tǒng)的能量利用日益暴露出高能耗低效率的問題[12].學術與工業(yè)界分別從硬件[13-15]、操作系統(tǒng)[16-18]、虛擬機[19-26]、數(shù)據(jù)中心[27-33]4個層次去解決IT系統(tǒng)的能耗問題.針對分布式計算系統(tǒng)能耗問題的研究,通常以Hadoop作為研究對象,并且大多從分布式存儲系統(tǒng)HDFS入手解決其存在的能耗問題,針對任務執(zhí)行框架MapReduce能耗優(yōu)化方面的研究則相對較少.
研究分布式存儲系統(tǒng)HDFS節(jié)能方面,根據(jù)軟硬件角度進行劃分,可分為硬件節(jié)能與軟件節(jié)能2個方面[34].硬件節(jié)能主要通過低能耗高效率的硬件設備或體系結構,對現(xiàn)有的高能耗存儲設備進行替換,從而達到節(jié)能的目的.硬件節(jié)能方法效果立竿見影,且不需要復雜的能耗管理組件;但是對于已經(jīng)部署的大規(guī)模應用系統(tǒng),大批量的硬件替換面臨成本過高的問題.軟件節(jié)能通過對存儲資源的有效調(diào)度,在不影響系統(tǒng)性能的前提條件下將部分存儲節(jié)點調(diào)整到低能耗模式,以達到節(jié)能的目的.由于不需要對現(xiàn)有硬件體系進行改變,軟件節(jié)能是目前云存儲節(jié)能技術的研究熱點.軟件節(jié)能研究主要集中在基于節(jié)點管理與數(shù)據(jù)管理2方面.節(jié)點管理主要研究如何選擇存儲系統(tǒng)中的部分節(jié)點或磁盤為上層應用提供數(shù)據(jù)服務,并讓其他節(jié)點進入低能耗模式以達到降低能耗的目的.節(jié)點管理中被關閉節(jié)點的選擇與數(shù)據(jù)管理技術緊密相關,而目前已有的數(shù)據(jù)管理技術主要有基于靜態(tài)數(shù)據(jù)放置、動態(tài)數(shù)據(jù)放置與緩存預取3種.其中,基于靜態(tài)數(shù)據(jù)放置的數(shù)據(jù)管理[35-39]根據(jù)固定的數(shù)據(jù)放置策略將數(shù)據(jù)存儲到系統(tǒng)中各節(jié)點上,之后將不再改變其存儲結構;基于動態(tài)數(shù)據(jù)放置的數(shù)據(jù)管理[40-43]根據(jù)數(shù)據(jù)訪問頻度動態(tài)調(diào)整數(shù)據(jù)存放的位置,將訪問頻度高與頻度低的數(shù)據(jù)遷移到不同磁盤上,對存儲低頻度數(shù)據(jù)的磁盤進行節(jié)能處理以降低系統(tǒng)能耗;基于緩存預取的數(shù)據(jù)管理[44]借鑒內(nèi)存中的數(shù)據(jù)緩存思想,將磁盤中的數(shù)據(jù)取到內(nèi)存或其他低能耗輔助存儲設備并使原磁盤進入低能耗模式以此達到節(jié)能的目的.Chen等人[45]針對實際系統(tǒng)的研究發(fā)現(xiàn)數(shù)據(jù)訪問具有很強的周期性,通過關閉空閑時段大量節(jié)點以達到節(jié)能的目的.文獻[46]提出了covering subset的概念,將數(shù)據(jù)塊與其副本中的至少一個數(shù)據(jù)塊放入該子集中以保證所有數(shù)據(jù)塊的可訪問性的前提下,通過關閉與該數(shù)據(jù)塊子集無交集的DataNode節(jié)點以達到節(jié)能的目的.文獻[47-48]通過對Yahoo公司HDFS集群內(nèi)部數(shù)據(jù)塊訪問規(guī)律的研究發(fā)現(xiàn)數(shù)據(jù)塊的訪問具有較強的規(guī)律性,根據(jù)數(shù)據(jù)塊的訪問規(guī)律將其放在Cold-Zone與Hot-Zone兩個DataNode節(jié)點區(qū)域中,通過將Cold-Zone中DataNode節(jié)點進行節(jié)能處理從而達到整個集群節(jié)能的目的.
在分布式任務執(zhí)行框架MapReduce能耗優(yōu)化方面,少有的研究通過選擇部分節(jié)點執(zhí)行任務[46]、任務完成后關閉節(jié)點[49]、配置參數(shù)優(yōu)化[45]、DVFS調(diào)度[50]、作業(yè)調(diào)度[51]、虛擬機放置策略[52]及數(shù)據(jù)壓縮[53]等方法達到提高MapReduce能耗利用率的目的.與covering subset思想相反,文獻[49]提出All-In Strategy(AIS)策略,即將整個MapReduce集群作為整體用于任務的執(zhí)行,當任務結束后將整個集群做節(jié)能處理(關閉節(jié)點)達到節(jié)能的目的.Leverich等人[46]發(fā)現(xiàn)MapReduce框架的參數(shù)配置對MapReduce能耗的利用具有較大影響,通過大量的實驗得到優(yōu)化MapReduce能耗的配置參數(shù),對提高MapReduce集群系統(tǒng)的能耗利用率具有指導意義.文獻[50]中利用DVFS(dynamic voltage and frequency scaling)技術,通過動態(tài)地調(diào)整CPU頻率以適應當前的MapReduce任務負載狀態(tài)達到優(yōu)化能耗利用的目的.文獻[51]提出Hadoop節(jié)能適應性框架GreenHadoop,通過合理的作業(yè)調(diào)度,在滿足作業(yè)截止時間約束的前提下通過配置與當前作業(yè)量相匹配的作業(yè)處理能力(活動節(jié)點數(shù)量),達到最小化Hadoop集群能耗的目的,實驗證明GreenHadoop與Hadoop相比提高了MapReduce的能耗利用率.宋杰等人[54]對云數(shù)據(jù)管理系統(tǒng)(包括基于MapReduce的系統(tǒng))的能耗進行了基準測試,并定義了能耗的度量模型與能耗測試方法,證明了不同系統(tǒng)在能耗方面存在著較大差異,需要進一步對系統(tǒng)進行能耗優(yōu)化.
本文與已有工作的不同包括:
1) 已有工作缺少對MapReduce能耗建模的研究.本文提出3種任務級的能耗模型:基于CPU利用率估算的能耗模型、基于主要部件能耗累加的能耗模型及基于平均功耗估算的能耗模型,并在這3種模型基礎上得到MapReduce作業(yè)能耗模型.能耗模型是研究MapReduce能耗優(yōu)化的理論基礎.
2) 已有工作往往采用單一的方法優(yōu)化Map-Reduce能耗.本文在MapReduce作業(yè)能耗模型的基礎上,歸納了從2種不同的層面(作業(yè)的執(zhí)行能耗與集群能源效率)、3種不同的方向(優(yōu)化MapReduce作業(yè)執(zhí)行能耗、減少MapReduce任務等待能耗與提高MapReduce集群能源利用效率)優(yōu)化MapReduce能耗.
3) 提出MapReduce任務等待能耗的概念,并提出異構環(huán)境下數(shù)據(jù)的放置策略減小MapReduce任務等待能耗.推導截止時間約束下的最小資源槽slot分配計算公式,計算適應當前作業(yè)的最小資源數(shù)量,提高MapReduce作業(yè)能源利用效率.

Fig. 1 MapReduce job decomposed into tasks.圖1 MapReduce作業(yè)的任務分解
2.1MapReduce系統(tǒng)模型
MapReduce運行環(huán)境通常由多個機架RACK組成,而一個RACK內(nèi)部又由多個節(jié)點服務器組成.通常情況下,MapReduce集群由2個NameNode管理節(jié)點(主管理節(jié)點與從管理節(jié)點)與多個DataNode節(jié)點構成.實際應用環(huán)境中,考慮到DataNode節(jié)點數(shù)量遠遠大于NameNode節(jié)點,DataNode節(jié)點能耗之和占系統(tǒng)總能耗的95%以上,并且NameNode負責整個系統(tǒng)的管理與調(diào)度工作,對NameNode進行節(jié)能處理將對系統(tǒng)的穩(wěn)定性造成影響.所以本文的能耗模型主要針對DataNode節(jié)點、不對NameNode節(jié)點進行能耗建模.
定義1. MapReduce集群DataNode節(jié)點模型.將MapReduce集群中n個DataNode節(jié)點用集合DN表示:
(1)
其中,dni∈DN(0≤i≤n-1)表示MapReduce集群中的DataNode節(jié)點.
定義2. 作業(yè)的任務分解模型.如圖1所示,MapReduce框架將作業(yè)job分解為多個Map與Reduce任務并行地在集群中執(zhí)行,可將這個過程定義為f(job)|→M∪R,其中f為映射函數(shù),集合M與R分別表示job分解后的Map與Reduce任務,其映射模型可由式(2)表示:
(2)
式(2)表示作業(yè)job被分解為m個Map任務與r個Reduce任務.其中,mti∈M(0≤i≤m-1)表示任意Map任務,rti∈R(0≤i≤r-1)表示任意Reduce任務.
定義3. 任務資源映射模型.作業(yè)job被分解為Map與Reduce任務后,將由作業(yè)調(diào)度系統(tǒng)將任務映射到具有空閑資源槽的DataNode節(jié)點dni上執(zhí)行.任務與資源映射過程可定義為映射f(M∪R)|→DN,其中f為映射函數(shù),M與R分別表示Map與Reduce任務的集合,DN表示MapReduce集群中DataNode節(jié)點的集合.具體而言,映射模型可由式(3)具體描述:
(3)
2.2MapReduce任務能耗模型
設某個任務task∈M∪R被映射到具有空閑資源槽的DataNode節(jié)點dni上執(zhí)行.任務task從時間點ts開始,運行到時間點te結束,即作業(yè)運行時間區(qū)間為[ts,te].那么,運行任務task所需要的能耗Etask可由式(4)得到:
(4)其中,ui(t)表示在時刻t∈[ts,te]節(jié)點dni的系統(tǒng)利用率(也可分別表示CPU、內(nèi)存、磁盤、網(wǎng)卡等部件的利用率),并且存在ui(t)∈[0,1];Pdni(ui(t))則表示在時刻t系統(tǒng)利用率為ui(t)條件下dni節(jié)點的功耗.
節(jié)點dni的電能消耗是由CPU、內(nèi)存、磁盤、網(wǎng)卡等設備的電能消耗共同組成的[55].節(jié)點瞬時功率值為這些硬件部件的瞬時功率之和.由于CPU、內(nèi)存、磁盤、網(wǎng)卡等部件的電器特性之間存在著很大的差異,導致不同部件能耗計算方法不同.使用累加所有部件能耗(或瞬時功耗)來計算節(jié)點的能耗值的方法較為復雜.所以,考慮到能耗模型的簡便性與完備性,本文提出3種能耗模型:第1種能耗模型考慮到系統(tǒng)整體能耗通常與CPU利用率成正比的特性,提出基于CPU利用率估算的能耗模型;第2種對系統(tǒng)主要的部件能耗模型進行分別建模,從而累加得到系統(tǒng)的整體能耗,該模型是一種完備的能耗模型,但具有較高的復雜度;第3種基于平均功耗估算的能耗模型是基于歷史數(shù)據(jù)分析的能耗估算模型,主要用于作業(yè)運行前的執(zhí)行能耗預測.
2.2.1基于CPU利用率估算的能耗模型


(5)

(6)

由式(4)~(6)可以得到:

(7)
定理1. 據(jù)微積分的思想,將時間區(qū)間[ts,te]等分為k份時(k→+∞),即將[ts,te]等分為[t0,t1,…,tk-1],且?[tj,tj+1],j∈[0,1,…,k-2],滿足ui(t∈[tj,tj+1])≡ui j,其中ui j為在時間區(qū)間[tj,tj+1]內(nèi)不隨時間變化的常量,并且同樣存在ui j∈[0,1].那么可將在節(jié)點dni運行任務taskj所需要的能耗進一步表達為式(8):
(8)
證明. 由于運行任務task所需要的能耗Etask可由式(7)進行計算,即:



當將時間區(qū)間[ts,te]等分為k(k→+∞)份時,即將[ts,te]等分為[t0,t1,…,tk-1],且?[tj,tj+1],j∈[0,1,…,k-2],滿足ui(t∈[tj,tj+1])≡ui j,其中ui j為在時間區(qū)間[tj,tj+1]內(nèi)不隨時間變化的常量,且存在ui j∈[0,1],那么:




又因為將時間區(qū)間等分為了k份,可以得到等分區(qū)間的大小tj+1-tj為

并且存在j∈[0,1,…,k-2]且k→+∞.
證畢.
利用基于CPU利用率估算能耗模型對Map-Reduce作業(yè)進行能耗計算的唯一前提條件是取得所有任務運行過程中的CPU利用率變化序列.CPU利用率變化序列可通過資源利用監(jiān)控軟件取得,或對現(xiàn)有的MapReduce框架進行擴展,在作業(yè)運行報告中添加任務執(zhí)行節(jié)點的CPU負載信息.基于CPU利用率估算的能耗模型意義在于作業(yè)運行完畢后對作業(yè)能耗的計算,是將來開發(fā)Hadoop能耗監(jiān)控及優(yōu)化軟件的理論基礎.
2.2.2基于主要部件能耗累加的能耗模型
由于節(jié)點的電能消耗是由CPU、內(nèi)存、磁盤、主板、風扇、網(wǎng)卡等設備的電能消耗共同組成的,本節(jié)首先建立各計算機主要部件的能耗模型,繼而推導出基于主要部件能耗累加的能耗模型(本節(jié)主要考慮CPU、內(nèi)存、磁盤、網(wǎng)卡的能耗模型,其他部件如主板、風扇等可根據(jù)其能耗模型進行擴展).
CPU的能耗模型受到處理器的活動狀態(tài)、指令執(zhí)行情況、高速cache使用情況、當前執(zhí)行頻率及制造工藝等因素的影響.設PCPU表示CPU利用率為uCPU時的功率,根據(jù)Kansal等人在文獻[58]中提出的能耗模型,PCPU與uCPU的關系可表示如下:
(9)其中,aCPU與λCPU為CPU能耗模型的常數(shù),不同的CPU之間存在著差異,其值可通過大量的訓練獲得.
已有大量工作針對內(nèi)存的能耗模型進行了研究,發(fā)現(xiàn)影響內(nèi)存能耗的主要因素是內(nèi)存讀寫數(shù)據(jù)的吞吐量[59].記錄內(nèi)存最后一層Cache(last level cache, LLA)的缺失次數(shù),是一種輕量級的內(nèi)存吞吐量評估方法.根據(jù)吞吐量指標,設Emem(T)表示內(nèi)存在時間區(qū)間T內(nèi)的能耗,N表示最后一層Cache的缺失次數(shù),內(nèi)存模型表達如下[58]:
(10)
其中,amem與λmem為內(nèi)存能耗模型的常數(shù).
磁盤能耗與讀寫數(shù)據(jù)量密切相關,設Edisk(T)表示磁盤在時間區(qū)間T內(nèi)的能耗,r與w分別表示在時間區(qū)間T內(nèi)磁盤的讀寫數(shù)據(jù)量,磁盤能耗模型可表達如下[60]:
(11)
其中,aread與awrite分別表示磁盤讀寫參數(shù),λdisk表示磁盤的靜態(tài)能耗,3個參數(shù)的值可通過大量的能耗數(shù)據(jù)分析與訓練獲得.
與磁盤能耗模型類似,網(wǎng)卡的能耗與發(fā)送、接收到的數(shù)據(jù)量成正比.設Enet(T)表示網(wǎng)卡在時間區(qū)間T內(nèi)的能耗,s與v分別表示在T時間區(qū)間內(nèi)網(wǎng)卡發(fā)送與接收到的數(shù)據(jù)量,網(wǎng)卡能耗模型可表達如下:
(12)
其中,asend與areceive分別表示網(wǎng)卡在發(fā)送、接收數(shù)據(jù)時的能耗參數(shù),λnet為網(wǎng)卡的靜態(tài)能耗參數(shù).
節(jié)點的電能消耗是由CPU、內(nèi)存、磁盤、網(wǎng)卡等設備的電能消耗的總和.當任務task∈M∪R在節(jié)點dni上執(zhí)行,運行時間區(qū)間為T=[ts,te]時運行任務task所需要的能耗Etask可表示如下:
Etask=ECPU+Emem+Edisk+Enet=

(13)
基于主要部件能耗累加的能耗模型相比基于CPU利用率估算能耗模型不僅考慮了CPU能耗,還考慮了內(nèi)存、磁盤及網(wǎng)絡等部件的能耗使用,準確地表達了任務在執(zhí)行過程各部件的能耗,理論上比基于CPU利用率估算的能耗模型更為完畢、精確.由于MapReduce任務主要分為CPU密集型、網(wǎng)絡 IO 密集型、磁盤IO密集型、Map階段CPU與Reduce階段IO密集型5類,基于主要部件能耗累加的能耗模型更能夠清晰地對不同MapReduce任務類型的能耗行為進行描述.但是,由于參數(shù)偏多且參數(shù)值的取得較為困難,加之資源在任務執(zhí)行過程中的動態(tài)性使得基于主要部件能耗累加的能耗模型計算更為復雜.所以,本文的研究重點是基于CPU利用率估算的能耗模型與基于平均功耗估算的能耗模型.但是,由于具有更為精確的特點,基于主要部件能耗累加的能耗模型將是將來研究工作的重點.
2.2.3基于平均功耗估算的能耗模型

(14)
利用基于平均功耗估算的能耗模型對Map-Reduce作業(yè)進行能耗計算的唯一前提條件是取得作業(yè)的分解與調(diào)度結果.作業(yè)的分解與調(diào)度結果由MapReduce的作業(yè)調(diào)度系統(tǒng)確定,現(xiàn)有的調(diào)度系統(tǒng)在考慮集群CPU、內(nèi)存、磁盤及網(wǎng)絡等資源狀態(tài)的基礎上,基于作業(yè)優(yōu)先級、截止時間、作業(yè)量、作業(yè)類型等因素對作業(yè)進行調(diào)度.現(xiàn)有調(diào)度系統(tǒng)并沒有將能耗作為一種資源進行考慮,而基于平均功耗估算的能耗模型主要功能是在作業(yè)運行前對作業(yè)的執(zhí)行能耗進行預測,所以基于平均功耗估算的能耗模型是將來研究節(jié)能的MapReduce作業(yè)調(diào)度系統(tǒng)的基礎.
2.3MapReduce作業(yè)能耗模型
當MapReduce接收到一個作業(yè)job后,MapReduce框架首先將按照定義2(作業(yè)的任務分解模型)將job分解為多個Map與Reduce任務;當job進入運行狀態(tài)后,MapReduce框架按照定義3中的資源映射模型將所有的任務綁定到一個空閑資源槽執(zhí)行.
設[ms0,me0]與[rs0,re0]分別表示Map任務mt0與Reduce任務rt0執(zhí)行的起始時間,那么可將任務集合M與R中所有任務起始時間用式(15)表示:

(15)
MapReduce作業(yè)的執(zhí)行能耗為所有子任務(Map任務與Reduce任務)能耗的總和,設Ejobexe表示某作業(yè)的執(zhí)行能耗,基于CPU利用率估算的能耗模型Ejobexe計算公式推導如式(16)所示:
Ejobexe=(Emt0+Emt1+…+Emtm)+



(16)
基于主要部件能耗累加的能耗模型Ejobexe計算公式推導如式(17)所示:
Ejobexe=(Emt0+Emt1+…+Emtm)+

(17)
基于平均功耗估算的能耗模型Ejobexe計算公式推導如式(18)所示:
Ejobexe=(Emt0+Emt1+…+Emtm)+

(18)
3.1能耗優(yōu)化方法討論
基于MapReduce作業(yè)能耗模型與MapReduce調(diào)度模型,本節(jié)對MapReduce作業(yè)的節(jié)能優(yōu)化問題進行討論.下面分別從優(yōu)化單個MapReduce作業(yè)的執(zhí)行能耗與提高MapReduce集群能源效率(MPUE),即從作業(yè)級與系級2方面出發(fā),提出以下3個方面對MapReduce作業(yè)能耗進行優(yōu)化:
1) 優(yōu)化MapReduce作業(yè)執(zhí)行能耗
基于2.3節(jié)提出的3種作業(yè)能耗模型,優(yōu)化單個MapReduce作業(yè)執(zhí)行能耗即是在相同作業(yè)條件下求解式(16)~(18)的極小值,具體可分為以下2種方法:

事實上,方法①的節(jié)能實質是采用低能耗高效率的硬件設備或體系結構(a與λ參數(shù)值較小),對現(xiàn)有的高能耗設備進行替換,從而達到節(jié)能的目的.已有大量工作[59,61-62]采用此方法,并取得了不錯的節(jié)能效果.基于方法①,節(jié)能效果立竿見影,且不需要復雜的軟件節(jié)能方法相匹配;但是對于已經(jīng)部署的大規(guī)模MapReduce應用系統(tǒng),大批量的硬件替換面臨成本過高的問題.
② 尋找任務數(shù)量與任務執(zhí)行時間總和之間的平衡點.根據(jù)式(16)與式(17)可知,當a與λ參數(shù)值固定時,可通過求解式(19)得到式(16)與式(17)的極小值:

(19)
式(19)中Map任務的數(shù)m主要由邏輯單元Split決定,多數(shù)情況下Split與Block呈一一對應關系,數(shù)據(jù)塊Block與Split對應關系如圖2所示;Reduce任務數(shù)r可由任務調(diào)度算法進行指定.理想情況下,相同作業(yè)被分解后的Map任務數(shù)目與Reduce任務數(shù)目越大,任務完成時間越短;但是,實際情況則不是這樣,如圖3所示為TeraSort任務在不同任務(Map任務數(shù)量固定,Reduce數(shù)量增多)數(shù)條件下的完成時間比較.圖3表明任務數(shù)目與任務完成時間之間并不呈線性關系,當任務數(shù)量增加到某臨界點時,任務完成時間并不會因為任務數(shù)量的增加而減小.一方面由于MapReduce集群資源狀態(tài)具有動態(tài)性;另一方面當作業(yè)類型不同時,其任務數(shù)目與任務完成時間之間關系也存在著較大差異.以上2點原因造成試圖通過求解式(19)來優(yōu)化MapReduce作業(yè)能耗面臨諸多挑戰(zhàn).但是,一種可行的方案是針對單一的作業(yè)類型,可通過大量的實驗取得基礎數(shù)據(jù),對基礎數(shù)據(jù)進行分析得到式(19)的近似解.

Fig. 2 The relationship between data Block and Split.圖2 數(shù)據(jù)塊Block與Split之間的對應關系

Fig. 3 The relationship between task number and job completion time (with 10 datanodes cluster).圖3 任務數(shù)與作業(yè)完成時間之間的關系(10節(jié)點集群環(huán)境下)
2) 減少MapReduce任務等待能耗
當前Hadoop中采用機架感知的數(shù)據(jù)存放策略,將數(shù)據(jù)文件切分為相同大小的數(shù)據(jù)塊(block)隨機存儲到集群DataNode節(jié)點中.在同構環(huán)境中,這種數(shù)據(jù)的切分與存儲方法能夠滿足系統(tǒng)可用性與負載分流的要求.但是,在異構環(huán)境中,由于集群中各節(jié)點的計算能力存在著差異,異構節(jié)點處理相同任務(任務數(shù)據(jù)集大小相同)的完成時間不同.由于只有當一個作業(yè)的Map任務成功完成的數(shù)量超過一定的閾值時,才能開始分配該作業(yè)的Reduce任務給某TaskTracker節(jié)點執(zhí)行,所以對于計算機能力強的節(jié)點,機架感知的數(shù)據(jù)存放策略會造成大量的等待時延.MapReduce任務執(zhí)行過程中任務之間并不是按照完全并行的方式進行的,Map與Reduce任務之間存在不同程度的執(zhí)行順序與數(shù)據(jù)調(diào)用的制約關系.當某任務處于等待其他任務的執(zhí)行結果(或等待其他任務的執(zhí)行完畢)才能繼續(xù)往下執(zhí)行而處于“被動空閑”狀態(tài)時,“任務等待能耗”便產(chǎn)生了,下面對MapReduce任務等待能耗進行定義.
定義4. MapReduce任務等待能耗.在Map-Reduce任務執(zhí)行過程中,某些Map任務或Reduce任務由于等待其他任務的完結或執(zhí)行結果,或者等待額外資源的分配才能繼續(xù)往下執(zhí)行,將這些任務所處的“被動空閑”狀態(tài)所產(chǎn)生的能耗定義為MapReduce任務等待能耗.
同構環(huán)境中,由于各節(jié)點計算能力相同,各并行任務產(chǎn)生MapReduce任務等待能耗的概率較小.本文在3.2節(jié)提出異構環(huán)境下數(shù)據(jù)的放置策略,有效地縮短等待時延的同時達到減小“MapReduce任務等待能耗”的目的.
3) 提高MapReduce集群能源利用效率
如圖4所示為WordCount與TeraSort兩種作業(yè)在10個節(jié)點的MapReduce集群環(huán)境中同時執(zhí)行時的資源利用圖.其中WordCount作業(yè)Map任務數(shù)為10,Reduce任務數(shù)為2;TeraSort作業(yè)Map任務數(shù)為8,Reduce任務數(shù)為5.從圖4可以看出,即使在MapReduce集群并行處理多個作業(yè)的情況下,Map資源槽與Reduce資源槽出現(xiàn)空閑的現(xiàn)象(特別是Reduce資源槽).特別當MapReduce集群資源數(shù)目較多且作業(yè)較少的情況下,資源空閑的現(xiàn)象將更為嚴重.

Fig. 4 The usage of slot by WordCount and TeraSort job.圖4 WordCount與TeraSort兩種作業(yè)slot占用圖示
為了提高集群能耗利用率,傳統(tǒng)的方法是減小“空閑能耗”,此方法在MapReduce集群系統(tǒng)中同樣適用.在解決數(shù)據(jù)塊可用性的前提下(即關閉空閑節(jié)點不會影響MapReduce任務的執(zhí)行),可通過減小“空閑能耗”達到優(yōu)化MapReduce的能耗利用率.在我們的前期工作中,已經(jīng)通過構造數(shù)據(jù)塊可用性度量矩陣[63-65],從數(shù)據(jù)的存儲層解決了數(shù)據(jù)可用性完全覆蓋問題.所以,在解決數(shù)據(jù)可用性問題且滿足作業(yè)的截止時間約束的前提條件下,將作業(yè)隊列中的作業(yè)壓縮(調(diào)度)到合適的資源集上執(zhí)行,并關閉“空閑資源”以達到提高MapReduce集群能源利用率是一種切實可行的辦法.本文3.3節(jié)提出截止時間約束下的最小資源槽slot分配方法,在滿足作業(yè)任務截止時間約束的前提下,計算完成該任務所需最少資源;通過任務調(diào)度方法將作業(yè)調(diào)度到部分資源集上,由此可產(chǎn)生大量的“空閑資源”.為了統(tǒng)一MapReduce集群能源利用效率的度量標準,需要對MapReduce任務執(zhí)行系統(tǒng)的能源使用效率的度量標準——MapReduce集群能源效率(MapReduce power usage effectiveness,MPUE)進行定義.
定義5. MapReduce集群能源效率(MPUE).設在時間段T內(nèi),某MapReduce集群總共完成n(n≥0)個作業(yè),這些作業(yè)的執(zhí)行能耗分別為Ei(0≤i≤n-1),并設時間段T內(nèi)集群總能耗為Ecluster.特定義在時間段T內(nèi),MapReduce能源效率(MPUE)來衡量該MapReduce集群的能源利用效率.MPUE可由如式(20)進行計算.
(20)
其中,MPUE∈[0,1].MPUE值越大,表明該集群MapReduce作業(yè)能源利用效率越高.當MPUE=0,說明在時間段T內(nèi)沒有MapReduce作業(yè)執(zhí)行;MPUE=1為理想情況,表明集群所有能耗都花費在了執(zhí)行作業(yè)操作上.MPUE表達的是集群層面的能源利用效率,也是衡量集群效能與slot資源利用率的重要標準.
3.2異構環(huán)境下數(shù)據(jù)的放置策略
異構環(huán)境中的數(shù)據(jù)放置策略應當適應不同節(jié)點的計算能力,數(shù)據(jù)塊的大小應與存儲該數(shù)據(jù)塊節(jié)點的數(shù)據(jù)處理能力成正比.這樣的數(shù)據(jù)塊切分原則可以有效地屏蔽異構集群中各個節(jié)點處理能力的差異性,保證多個并行數(shù)據(jù)處理任務盡量在相同的時間內(nèi)完成,在有效地縮短等待時延的同時減小“MapReduce任務等待能耗”.
設Ci j表示節(jié)點dni處理任務taskj時的計算能力,那么Ci j可表示為:
(21)
其中,Ti j表示節(jié)點dni完成任務taskj所花的時間,Di j表示任務所處理數(shù)據(jù)量的大小.Hadoop集群中每個節(jié)點對于不同任務的計算能力可通過大量的訓練與測試得到,本文中設Ci j值為已知.可將訓練后不同節(jié)點處理不同任務時的計算能力用表1進行記錄.

Table 1 Computing Capability of DataNodes for Each Task
設某MapReduce作業(yè)J∈job被分解為n個Map任務,每個Map任務映射到具有不同計算能力的節(jié)點資源slot上.為使這n個Map任務完成時間均衡并縮短等待時延,數(shù)據(jù)的切分規(guī)則應滿足式(22):
(22)
其中,C1,C2,…,Cn與D1,D2,…,Dn分別表示對應節(jié)點的計算能力與被分配到的數(shù)據(jù)量;D表示作業(yè)J需要處理的總數(shù)據(jù)量.
3.3截止時間約束下的最小資源分配
在數(shù)據(jù)放置策略確定并且節(jié)點的計算能力已知的情況下,能夠對任務的完成時間進行有效的預測.本節(jié)提出截止時間約束下的最小資源分配計算方法,在滿足作業(yè)完成時間deadline約束前提下,計算完成該任務所需最少資源;通過任務調(diào)度方法將作業(yè)集中地調(diào)度到部分資源集上.一方面,該調(diào)度方法可產(chǎn)生大量的“空閑資源”,通過將空閑資源進行休眠處理以達到節(jié)能的目的;另一方面,該調(diào)度策略也能提高單作業(yè)的能耗效率.
設某MapReduce作業(yè)J被初始化為NM個Map任務與NR個Reduce任務,并且這些任務在擁有RM個Map任務執(zhí)行資源(Map slot)與RR個Reduce任務執(zhí)行資源(Reduce slot)的集群中運行.在數(shù)據(jù)量大小與節(jié)點計算能力確定的情況下,能夠通過式(21)對Map任務完成時間進行預測,但由于MapReduce任務由Map階段、shuffle&sort階段與Reduce階段組成,shuffle&sort階段與Reduce階段的任務完成時間無法進行直接計算.所以,下面通過任務采樣的方法來預測作業(yè)J的完成時間,其主要步驟如下:



(23)

(24)
4) 記錄每個采樣Reduce任務j的完成時間TR(j)與處理數(shù)據(jù)量大小DR(j).利用得到的采樣數(shù)據(jù)建立Reduce任務輸入數(shù)據(jù)量與完成時間的函數(shù)關系:

(25)
其中,式(22)~(24)中的C表示任意節(jié)點dnij處理作業(yè)J時的計算能力.
5) 計算Map階段的采樣任務平均完成時間為
(26)
6) 計算shuffle&sort階段的采樣任務平均完成時間為
(27)
7) 計算Reduce階段的采樣任務平均完成時間為
(28)
基于采樣任務的運行結果,可預測作業(yè)J在Map階段的平均完成時間為
(29)
同樣的方法,可預測Reduce階段(包含shuffle &sort階段)任務的平均完成時間為
(30)
值得注意的是,由于作業(yè)J在集群中運行shuffle&sort的第1次操作與Map階段有重疊部分,所以式(29)中減去了重疊部分的時間.
設Tavg表示作業(yè)J的總完成時間,在式(29)與式(30)的基礎上,總完成時間為
(31)
對式(31)進行變換,可得到式(32):
(32)
(33)
本文提出截止時間約束下的最小資源分配的計算方法,即是RM與RR值最小,通過最優(yōu)化的辦法建立最優(yōu)化目標函數(shù)為

(34)
利用拉格朗日乘數(shù)法求函數(shù)f(RM,RR)最小值為
(35)

(36)
由于MapReduce作業(yè)的類型是有限的,相同類型的作業(yè)Map,shuffle&sort,Reduce的數(shù)據(jù)量與完成時間的函數(shù)(式(26)~(28))相同.所以對于相同類型的MapReduce作業(yè),函數(shù)式(26)~(28)具有可重用性.即通過大量的訓練與測試,可確定不同類型作業(yè)的處理數(shù)據(jù)量與完成時間之間的函數(shù)關系.再則,通過3.2節(jié)的方法可確定任意節(jié)點dni處理作業(yè)J時的計算能力,所以,式(36)可解.同樣,當參數(shù)RM與RR值已知時,可利用式(36)確定參數(shù)NM與NR的值,即當可用Map資源slot及Reduce資源slot已知的情況下,可對滿足作業(yè)完成時間deadline約束條件下的最小Map及Reduce任務數(shù)進行計算.
從圖3可知,MapReduce任務數(shù)目與任務完成時間之間并不呈線性關系,當任務數(shù)量增加到某臨界點時,任務完成時間并不會因為任務數(shù)量的增加而減小.通過式(36)可計算出任意作業(yè)在滿足截止時間約束前提下的最小資源分配RM與RR.根據(jù)MapReduce作業(yè)執(zhí)行原理,RM值可指導數(shù)據(jù)的分塊策略(或Split切分原則);RR值確定了Reduce任務的數(shù)量.由于截止時間約束下的最小資源分配策略減少了執(zhí)行相同作業(yè)所需的資源,從而減小了完成單個MapReduce作業(yè)所需能耗,優(yōu)化了單個MapReduce作業(yè)對能耗的利用效率.
從整個集群的角度看,如圖5所示為MapReduce作業(yè)的節(jié)能調(diào)度模型,當所有的MapReduce作業(yè)切分任務數(shù)量減少時,完成相同作業(yè)所需的資源數(shù)量將減少,即截止時間約束下的最小資源分配策略將更容易產(chǎn)生空閑節(jié)點.特別當系統(tǒng)空閑時段,截止時間約束下的最小資源分配策略可將任務集中分配在少量的節(jié)點上,從而產(chǎn)生大量的空閑節(jié)點.將空閑節(jié)點進行休眠處理,將大大提高MPUE值.特別地,利用休眠空閑節(jié)點方法進行節(jié)能時需要考慮數(shù)據(jù)的可用性需求,該問題屬于數(shù)據(jù)存儲層的問題,可參考文獻[46,63].由于提高MapReduce集群的能源利用效率(MPUE)主要涉及MapReduce作業(yè)及任務的調(diào)度問題,涉及的研究內(nèi)容較多,不作為本文的研究重點,是下一步研究的主要內(nèi)容.

Fig. 5 Energy-Effcient scheduling model for MapReduce jobs.圖5 MapReduce作業(yè)的節(jié)能調(diào)度模型

Fig. 6 Topology diagram of experimental environment.圖6 實驗環(huán)境拓撲結構圖
本節(jié)對3種能耗模型及作業(yè)運行時的資源行為進行了實驗分析,討論了3種模型的不同特點及適用的場景;對基于CPU利用率估算與基于平均功耗估算的能耗模型進行了運用及誤差分析;對3.1節(jié)中討論的能耗優(yōu)化方法進行了實驗.
4.1實驗環(huán)境及參數(shù)配置
為了對MapReduce能耗模型進行實驗分析,項目組搭建了擁有52個節(jié)點的Hadoop集群;其中NameNode與SecondNameNode分別獨立為1個節(jié)點,其余50個節(jié)點為DataNode(5Rack×10DataNode).實驗拓撲結構如圖6所示.
為了控制實驗過程中的Map任務數(shù)量,達到控制實驗數(shù)據(jù)的統(tǒng)計與計算量的目的,特將數(shù)據(jù)塊分塊大小配置為512 MB,即dfs.block.size=512MB.單個DataNode節(jié)點上Map與Reduce任務slot資源槽數(shù)設置為1,即配置項mapred.tasktracker.map.tasks.maximum=1與mapred.tasktracker.reduce.tasks.maximum=1.能耗數(shù)據(jù)測量方面,實驗采用北電電力監(jiān)測儀(USB智能版),數(shù)據(jù)采樣頻率設置為每次1 s,各節(jié)點能耗數(shù)據(jù)(包括瞬時功率、電流值、電壓值、能耗累加值等)可通過USB接口實時地傳輸?shù)侥芎臄?shù)據(jù)監(jiān)測機上,實現(xiàn)能耗數(shù)據(jù)的收集.實驗總體環(huán)境描述如表2所示:

Table 2 Description of Experimental Environment
4.2能耗模型與作業(yè)資源行為分析
本節(jié)選用不同種類的作業(yè)進行實驗,通過數(shù)據(jù)分析總結MapReduce作業(yè)能耗與不同資源(主要包括CPU、磁盤、內(nèi)存及網(wǎng)絡)利用行為之間的關系.
本節(jié)選取WordCount,TeraSort,NutchIndex,K-means,Bayes,PageRank六種作業(yè)進行實驗,作業(yè)參數(shù)設置如表3所示:

Table 3 Description of MapReduce Jobs
本實驗中將DataNode節(jié)點規(guī)模配置為10,通過設置作業(yè)的Map與Reduce任務數(shù)(如表3所示)為DataNode節(jié)點的整數(shù)倍,使得Map與Reduce任務均分到每個DataNode節(jié)點.通過10臺能耗監(jiān)測儀對作業(yè)運行中的所有DataNode節(jié)點功耗進行采樣,利用時間戳關聯(lián)實時功耗數(shù)據(jù)與節(jié)點CPU利用率.6種作業(yè)運行時節(jié)點功耗與CPU負載之間的關系比如圖7所示:

Fig. 7 Comparison between real-time power consumption and CPU utilization.圖7 作業(yè)實時功耗與CPU利用率之間的比較

Fig. 8 The relationship between CPU utilization and power consumption .圖8 DataNode節(jié)點CPU利用率與功耗之間的關系
通過圖7可以看出6種作業(yè)實時功耗與CPU利用率之間聯(lián)系緊密;當CPU利用率上升時能耗上升;當CPU利用率下降時能耗下降;CPU變化趨勢與能耗變化趨勢基本一致.事實上,通過圖7表明了本文2.2.1節(jié)中提出的基于CPU利用率估算的能耗模型的可行性.通過大量的能耗數(shù)據(jù)分析得出節(jié)點功耗與CPU利用率之間的關系如圖8(a)所示.
如圖8所示分別為散熱良好(圖8(a))與散熱故障(圖8(b))的DataNode節(jié)點CPU利用率與功耗之間的關系.實驗值取大量測試數(shù)據(jù)的平均值,如CPU利用率在50%時功耗測試數(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為實驗值.實驗中我們發(fā)現(xiàn)散熱良好的與出現(xiàn)散熱故障的節(jié)點功耗存在較大的差異,散熱良好的節(jié)點靜態(tài)功耗為[64,65]W,運行時CPU溫度穩(wěn)定在50~65℃;而出現(xiàn)散熱故障的節(jié)點靜態(tài)功耗為[70,72]W,運行時CPU在70~88℃.基于CPU利用率估算的能耗模型的計算方法(式(5)與式(6)),可得出散熱良好DataNode節(jié)點CPU利用率與功耗之間的理論函數(shù)如式(37):

(37)
其中,u表示CPU利用率,P(u)表示CPU利用率為u時節(jié)點的功耗.節(jié)點靜態(tài)功耗為64 W,峰值功耗為110 W,由式(6)得出參數(shù)a≈0.5.同樣方法可得到出現(xiàn)散熱故障的DataNode節(jié)點CPU利用率與功耗之間的理論函數(shù):
P(u)=70+0.65u.
(38)
當節(jié)點出現(xiàn)散熱故障時,節(jié)點靜態(tài)功耗為70 W,峰值功耗為135 W,參數(shù)a≈0.65.值得一提的是,式(37)(38)及圖8中所示的CPU與功耗關系曲線與文獻[57]中的結論一致,表明基于CPU利用率估算能耗模型的可行性.
利用基于CPU利用率估算能耗模型對Map-Reduce作業(yè)進行能耗計算的唯一前提條件是取得所有任務運行過程中的CPU利用率變化序列.基于CPU利用率估算的能耗模型是將來開發(fā)Hadoop能耗優(yōu)化及監(jiān)控軟件的理論基礎.
由于基于主要部件能耗累加的能耗模型不僅考慮了CPU能耗,還考慮了內(nèi)存、磁盤及網(wǎng)絡等部件的能耗使用.所以除了關注作業(yè)執(zhí)行過程中能耗與CPU之間的關系,本實驗還對作業(yè)執(zhí)行過程中DataNode節(jié)點主要資源(內(nèi)存、磁盤與網(wǎng)絡)進行了監(jiān)測,WordCount,TeraSort,NutchIndex,K-means,PageRank,Bayes六種作業(yè)的內(nèi)存、磁盤與網(wǎng)絡資源運行時狀態(tài)變化如圖9所示:



















Fig. 9The comparison of memery,disk and network usage while job running.
圖9不同作業(yè)運行時內(nèi)存、磁盤及網(wǎng)絡資源使用情況對比
通過圖9可以看出不同作業(yè)在運行過程中的內(nèi)存、磁盤與網(wǎng)絡資源的利用存在較大的差異,并且相同作業(yè)在不同時間點資源利用率變化也很大.這使得利用本文2.2.2節(jié)中提出的基于主要部件能耗累加的能耗模型進行能耗計算時需要進行大量的計算.確定CPU利用率與能耗之間具有規(guī)律性,但歸納內(nèi)存、磁盤與網(wǎng)絡資源利用率與能耗之間的關系則具有較大的難度.雖然基于主要部件能耗累加的能耗模型能夠準確地表達任務在執(zhí)行過程中CPU、內(nèi)存、磁盤、網(wǎng)卡等各設備的能耗,但由于模型的參數(shù)偏多且參數(shù)值的取得較為困難,加之資源利用率的動態(tài)性,使得基于主要部件能耗累加的能耗模型實踐難度較大.
將WordCount,TeraSort,NutchIndex,K-means,PageRank,Bayes六種作業(yè)分別執(zhí)行10次(減小實驗誤差),詳細的記錄各作業(yè)Map與Reduce任務的開始與結束時間,通過能耗監(jiān)測儀的采樣數(shù)據(jù)得到每個任務的執(zhí)行能耗.任務的平均功耗由任務的執(zhí)行能耗除以任務的執(zhí)行時間得到,節(jié)點對任務的計算能力通過式(21)計算獲得.6種作業(yè)Map與Reduce任務的平均功耗及計算能力情況如表4所示.其中,WordCount單任務處理數(shù)據(jù)量為975.88 MB,TeraSort單任務處理數(shù)據(jù)量為953.67 MB,PageRank單任務處理300 000個頁面,K-means單任務處理4 000 000個SAMPLE,Bayes單任務處理30 000個頁面.

Table 4 Average Power Consumption and Computing Capability of Map and Reduce Task
當作業(yè)的任務分解及調(diào)度結果確定后,結合表4中的數(shù)據(jù),可通過基于平均功耗估算的能耗模型(式(18))對作業(yè)的能耗進行預測.對于WordCount,TeraSort,NutchIndex,K-means,PageRank這5種作業(yè),由于作業(yè)階段性任務較少,利用基于平均功耗估算的能耗模型進行能耗預測相比Bayes作業(yè)容易.因為Bayes作業(yè)多達10個階段性任務,使得任務的分解及調(diào)度復雜度較高,即增加了利用平均功耗估算的能耗模型對Bayes作業(yè)進行能耗預測的難度;同時,較多的階段性任務增大了預測的計算量.值得注意的是,表4表示的是同構集群環(huán)境(節(jié)點配置如表2所示)中的數(shù)據(jù),在異構環(huán)境中,由于節(jié)點計算能力及能耗屬性的不同,大大增加了構造表4數(shù)據(jù)的難度與工作量.即基于平均功耗估算的能耗模型適合對同構環(huán)境中階段性任務較少(或任務分解與調(diào)度較簡單)的作業(yè)進行能耗預測.由于基于平均功耗估算的能耗模型主要用于作業(yè)能耗的預測,并且依賴于作業(yè)的分解與調(diào)度結果,所以是將來研究節(jié)能的MapReduce作業(yè)調(diào)度系統(tǒng)的基礎.
4.3能耗模型運用及誤差分析
本節(jié)對基于CPU利用率估算的能耗模型與基于平均功耗估算的能耗模型進行運用,選取了Word-Count,TeraSort,Sort,NutchIndex,K-means,PageRank,Bayes七種作業(yè)作為研究對象,作業(yè)的配置如表3所示.在作業(yè)運行前根據(jù)作業(yè)的任務分解及調(diào)度結果,運用基于平均功耗估算的能耗模型對7種作業(yè)的能耗進行估算,各任務不同階段的計算能力及平均功耗如表4所示.作業(yè)運行過程中利用能耗監(jiān)測儀對各任務執(zhí)行能耗(任務開始到任務結束時間段內(nèi)節(jié)點能耗)進行監(jiān)測,累加得到作業(yè)能耗實際值,并將此能耗值作為基準值.作業(yè)執(zhí)行過程中還需對各任務的CPU利用率進行監(jiān)測,作業(yè)執(zhí)行完畢后運用基于CPU利用率估算的能耗模型對各作業(yè)能耗進行計算(CPU利用率與節(jié)點能耗值的對應關系如圖8所示).
此外,由于2種能耗模型都是估算模型,難免存在一定程度的誤差,表5對2種能耗模型的估算值、能耗測量值及估算誤差進行了記錄.

Table 5 The Usage Demonstration and Error Analysis for Energy Model
總結表5中對2種能耗模型的估算值、能耗測量值及估算誤差數(shù)據(jù)可以得到以下4個結論:
1) 基于CPU利用率估算能耗模型的估算值總是比實際測量值大.如圖8(a)DataNode節(jié)點CPU利用率與功耗之間的關系所示,大多數(shù)實驗測量值都小于理論值,由于使用式(37)所確定的理論能耗值進行計算,所以造成估算值大于實際測量值.
2) 基于平均功耗估算能耗模型的估算值總是比實際測量值小.基于平均功耗估算的能耗模型在任務分解及調(diào)度結果確定后,進行能耗估算時沒有考慮到任務的執(zhí)行失敗問題.而在任務的實際運行過程中存在不少任務的失敗現(xiàn)象,在對失敗任務重調(diào)度及重新執(zhí)行過程中,消耗了額外的能耗,使得估算值小于實際測量值.
3) 基于CPU利用率估算的能耗模型估算值總體上較基于平均功耗估算的能耗模型估算值誤差小.這是由于前者是作業(yè)完成后的估算,計算過程只依賴于CPU利用率與能耗之間的對應關系,CPU利用率與能耗估算值與實際值之間的誤差決定了能耗模型的誤差;而后者則是作業(yè)運行前的估算,首先需要對每個任務的完成時間進行估算,然后再基于估算的任務完成時間對能耗進行計算,2次估算過程增大了誤差.
4) 任務執(zhí)行時間越短,任務數(shù)量越多,估算誤差越大.較短的任務執(zhí)行時間使得能耗采樣數(shù)據(jù)較小,導致能耗測量值本身的誤差.
4.4能耗優(yōu)化方法實驗
根據(jù)3.1節(jié)對能耗優(yōu)化方法討論的結果,本節(jié)分別對優(yōu)化MapReduce作業(yè)執(zhí)行能耗及減少MapReduce任務等待能耗2種能耗優(yōu)化方法進行實驗.由于提高MapReduce集群的能源利用效率主要涉及MapReduce作業(yè)及任務的調(diào)度問題,雖然不作為本文的研究重點,但卻是將來的重要研究內(nèi)容.
4.4.1優(yōu)化MapReduce作業(yè)執(zhí)行能耗
采用低能耗高效率的硬件設備或體系結構,對MapReduce集群中的高能耗設備進行替換,該方法能夠大幅度降低MapReduce作業(yè)的執(zhí)行能耗.但是硬件的更換面臨過高的成本問題,該方法已經(jīng)在文獻[59,61-62]中進行了大量的討論,本文則不對此方法進行重復的實驗.本實驗將DataNode節(jié)點數(shù)設置為50,即設置Map與Reduce任務資源槽數(shù)各為50,將表3中配置的6種作業(yè)隨機提交到集群時,可利用式(36)計算滿足截止時間要求的Map與Reduce任務數(shù).雖然式(36)中的不同作業(yè)不同階段的完成時間可通過表4已知實驗值確定,但多個作業(yè)同時提交到系統(tǒng)時,涉及到復雜的MapReduce作業(yè)及任務的調(diào)度問題,故本文首先考慮解決優(yōu)化MapReduce單個作業(yè)執(zhí)行能耗問題.對于節(jié)能的作業(yè)及任務調(diào)度研究,是下一步研究的主要內(nèi)容.以TeraSort作業(yè)為例,將任務運行10次取平均數(shù),其任務數(shù)與作業(yè)完成時間及能耗之間的關系如表6所示:

Table 6 The Relationship between Job Completion Time and Energy Consumption with Different Task Numbers
如圖10所示為作業(yè)任務數(shù)對完成時間及能耗的影響.一方面,理論上任務數(shù)越大作業(yè)完成時間越小,但實際上任務數(shù)目與任務完成時間之間并不呈線性關系,當任務數(shù)量增加到某臨界點時,作業(yè)完成時間并不會因為任務數(shù)量的增加而減小(或減小效果不明顯);另一方面,隨著任務數(shù)量的不斷增大,作業(yè)能耗不斷地增加,即完成相同作業(yè),任務數(shù)越大,完成該任務能耗越大.這是因為當任務數(shù)較多時,任務之間的數(shù)據(jù)傳輸增加,任務之間的關聯(lián)變得復雜,任務協(xié)調(diào)成本增加,任務啟動操作及任務完成后的清理動作增加,以上4方面都導致了能耗的增加.理論上,作業(yè)被分解的任務數(shù)越少,作業(yè)能耗利用率越高;但是作業(yè)具有截止時間QoS約束時,需滿足作業(yè)完成時間deadline約束需求.
利用3.3節(jié)提出的截止時間約束下的最小資源槽slot分配方法計算出的作業(yè)分解方案,能夠在滿足作業(yè)完成時間deadline約束前提條件下最小化作業(yè)執(zhí)行能耗.所以,截止時間約束下的最小資源槽slot分配方法是一種適應節(jié)能的作業(yè)的任務分解模型.

Fig. 10 The comparison of job completion time and energy consumption with different task numbers.圖10 作業(yè)任務數(shù)對完成時間及能耗的影響
此外,實驗過程中我們還發(fā)現(xiàn),當DataNode節(jié)點CPU溫度較高時,完成相同的任務,需要消耗更多的能耗.圖8(b)所示當CPU溫度較高時(70~88℃之間)DataNode節(jié)點CPU利用率與功耗之間的關系.即在進行任務與資源之間的綁定過程中,需要考慮CPU的溫度.
4.4.2減少MapReduce任務等待能耗
為了構造異構集群實驗環(huán)境,我們向同構集群中添加了1臺性能較差的DataNode節(jié)點.實驗中異構集群由9臺同構DataNode節(jié)點(配置如表2)及1臺配置為單核Intel Pentium 4 1.5 GHz、512 MB內(nèi)存及40 GB硬盤的低配節(jié)點組成.實驗準備階段,首先對新加入的異構節(jié)點計算能力進行測試.測試的方法是在異構節(jié)點上運行作業(yè),記錄作業(yè)完成時間與已有節(jié)點進行對比,最后得到異構節(jié)點是原節(jié)點性能的0.228倍.數(shù)據(jù)布局階段,首先按照機架感知的數(shù)據(jù)塊布局策略將7種不同的作業(yè)數(shù)據(jù)進行分布存儲,數(shù)據(jù)塊大小相同;再次,按照3.2節(jié)中異構環(huán)境下數(shù)據(jù)的放置策略和節(jié)點的計算能力進行數(shù)據(jù)布局,異構節(jié)點數(shù)據(jù)量是原節(jié)點的0.228倍.2種布局策略下6種作業(yè)(作業(yè)配置參數(shù)如表3所示)的能耗及完成時間(實驗10次平均值)對比如表7所示:

Table 7 Comparison of Job Completion Time and Energy Consumption with Different Data Layout Strategies

Fig. 11 The comparison of job completion time and energy consumption.圖11 作業(yè)運行時間及能耗對比
如表7數(shù)據(jù)及圖11所示,與異構環(huán)境下原數(shù)據(jù)布局策略(機架感知的數(shù)據(jù)布局策略)相比較,適應異構集群的數(shù)據(jù)布局策略(按計算力布局策略)分別提高WordCount,TeraSort,NutchIndex,K-means,PageRank,Bayes作業(yè)完成時間18 s,15 s,30 s,9 s,43 s,56 s,提升作業(yè)完成時間1.959%,2.385%,3.64%,1.99%,6.902%,10.036%; 分別節(jié)能9 759 J,13 690 J,24 019 J,11 725 J,25 743 J,44 323 J,節(jié)能率為1.385%,2.628%,3.724%,3.462%,5.496%,10.215%.可以發(fā)現(xiàn)適應異構集群的數(shù)據(jù)布局策略對于WordCount,TeraSort,NutchIndex,K-means四種作業(yè)完成時間及節(jié)能效率提升并不明顯,而PageRank及Bayes有較為明顯的提升,這是因為PageRank與Bayes作業(yè)Reduce任務需要等待所有Map任務完成才能開始,造成等待時延較長;而其他作業(yè)完成部分Map任務Reduce任務就能開始,等待時延較短.所以,利用3.2節(jié)中提出的數(shù)據(jù)布局策略,能夠達到減小作業(yè)運行時間并提高MapReduce作業(yè)能耗利用率的目的.
首先,本文對MapReduce系統(tǒng)模型進行了分析,提出3種任務級的能耗模型:基于CPU利用率估算的能耗模型、基于主要部件能耗累加的能耗模型及基于平均功耗估算的能耗模型,并在這3種模型基礎上得到了MapReduce作業(yè)能耗模型.其中,基于CPU利用率估算的能耗模型用于作業(yè)完成后的能耗的估算,是將來開發(fā)Hadoop作業(yè)能耗監(jiān)控及優(yōu)化軟件的理論基礎;基于平均功耗估算的能耗模型用于作業(yè)運行前的能耗預測,是將來研究節(jié)能的MapReduce作業(yè)調(diào)度系統(tǒng)的基礎;基于主要部件能耗累加的能耗模型參數(shù)較多,能夠清晰地表達作業(yè)執(zhí)行過程中各部件的能耗行為.其次,對MapReduce作業(yè)能耗優(yōu)化進行了分析,提出從單個MapReduce作業(yè)的執(zhí)行能耗與提高MapReduce集群能源效率2個層面,以及優(yōu)化MapReduce作業(yè)執(zhí)行能耗、減少MapReduce任務等待能耗與提高MapReduce集群能源利用效率3個方向對MapReduce進行能耗優(yōu)化,并提出異構環(huán)境下數(shù)據(jù)的放置策略及截止時間約束下的最小資源槽slot分配方法分別從減少MapReduce任務等待能耗及MapReduce作業(yè)執(zhí)行能耗2種方法提高能耗利用率.最后,通過大量的實驗及能耗數(shù)據(jù)分析,證明本文所提能耗模型及能耗優(yōu)化方法的正確性.下一步工作主要集中在以下4個方面:
1) 對基于主要部件能耗累加的能耗模型進行研究,對各部件的能耗參數(shù)進行確定,實現(xiàn)對作業(yè)執(zhí)行過程中各部件能耗的精細化監(jiān)控,并在本文的基礎上研究MapReduce執(zhí)行過程中網(wǎng)絡傳輸?shù)哪芎男袨榧皟?yōu)化方法.
2) 在基于CPU利用率估算的能耗模型基礎上,研究并開發(fā)Hadoop作業(yè)能耗監(jiān)控及優(yōu)化軟件,實現(xiàn)對MapReduce作業(yè)能耗的自動化計算.
3) 基于本文提出的截止時間約束下的最小資源槽slot分配方法及基于平均功耗估算的能耗模型,研究節(jié)能的作業(yè)及任務調(diào)度算法,從提高Map-Reduce集群能源效率角度對能耗進行優(yōu)化.
4) 設計溫度感知的任務資源映射算法,將節(jié)點CPU溫度狀態(tài)加入到任務到資源的映射模型中,實現(xiàn)節(jié)能的任務資源映射模型.
[1]Meng Xiaofeng, Ci Xiang. Big data management: Concepts, techniques and challenges[J]. Journal of Computer Research and Development, 2013, 50(1): 146-149 (in Chinese)(孟小峰, 慈祥. 大數(shù)據(jù)管理: 概念、技術與挑戰(zhàn)[J]. 計算機研究與發(fā)展, 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 2011[EBOL]. 2012[2015-05-25]. http:wwww.ifap.rulibrarybook268.pdf[3]Global Action Plan International. Global action plan, an inefficient truth[EBOL]. 2007[2011-02-12]. http:globalactionplan.org.uk[4]Times N Y. Power, pollution and the Internet[EBOL]. 2012 [2015-05-20]. http:www.nytimes.com20120923technologydata-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]. San Francisco, CA: Morgan & Claypool Publishers, 2009[6]Borthaku D. The Hadoop distributed file system: Architecture and design[EBOL]. (2007-07-01) [2015-02-12]. http:hadoop.apache.orgdocsr1.2.1hdfs_design.html[7]Ghemawat S, Gobioff H, Leung S T. The Google file system[C]Proc of the 19th ACM Symp on Operating System Principles. New York: ACM, 2003: 29-43[8]Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters[C]Proc of the Conf on Operating System Design and Implementation (OSDI). New York: ACM, 2004: 137-150[9]Wang Peng, Meng Dan, Zhan Jianfeng, et al. Review of programming models for data-intensive computing[J]. Journal of Computer Research and Development, 2010, 47(11): 1993-2002 (in Chinese)(王鵬, 孟丹, 詹劍鋒, 等. 數(shù)據(jù)密集型計算編程模型研究進展[J]. 計算機研究與發(fā)展, 2010, 47(11): 1993-2002)[10]Li D, Wang J E. Energy efficient redundant and inexpensive disk array[C]Proc of the ACM SIGOPS European Workshop. New York: ACM, 2004: 29-35[11]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[12]Liao Bin, Yu Jiong, Zhang Tao, et al. Energy-efficient algorithms for distributed file system HDFS[J]. Chinese Journal of Computers, 2013, 36(5): 1047-1064 (in Chinese)(廖彬, 于炯, 張?zhí)? 等. 基于分布式文件系統(tǒng)HDFS的節(jié)能算法[J]. 計算機學報, 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]Proc of the 28th IEEE Int Conf on Computer Communications (INFOCOM 2009). Piscataway, NJ: IEEE, 2009: 2007-2015[15]Andrew L L, Lin M, Wierman A. Optimality, fairness, and robustness in speed scaling designs[C]Proc of ACM Int Conf on Measurement and Modeling of Int Computer Systems (SIGMETRICS 2010). New York: ACM, 2010: 37-48[16]Neugebauer R, McAuley D. Energy is just another resource: Energy accounting and energy pricing in the nemesis OS[C]Proc of the 8th IEEE Workshop on Hot Topics in Operating Systems. Piscataway, NJ: IEEE, 2001: 59-64[17]Flinn J, Satyanarayanan M. Managing battery lifetime with energy-aware adaptation[J]. ACM Trans on Computer Systems, 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]Proc of the 12th IEEE Int Conf on High Performance Computing and Communications. Piscataway, NJ: IEEE, 2010: 281-288[20]Choi J, Govindan S, Jeong J, et al. Power consumption prediction and power-aware packing in consolidated environments[J]. IEEE Trans on Computers, 2010, 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]Proc of the 4th IEEE Int Conf on Cloud Computing. Piscataway, NJ: IEEE, 2011: 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 Trans on Computers, 2011, 99(1): 552-564[24]Wang X, Wang Y. Coordinating power control and performance management for virtualized server cluster[J]. IEEE Trans on Parallel and Distributed Systems, 2011, 22(2): 245-259[25]Wang Y, Wang X, Chen M, et al. Partic: Power-aware response time control for virtualized Web servers[J]. IEEE Trans 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 al. Multi-tiered on-demand resource scheduling for VM-based data center[C]Proc of the 9th IEEEACM Int Symp on Cluster Computing and the Grid (CCGrid 2009). Piscataway, NJ: IEEE, 2009: 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[C]Proc of the 2010 Int Conf on Parallel and Distributed Processing Techniques and Applications (PDPTA 2010). New York: ACM, 2010[33]Kim K H, Beloglazov A, Buyya R. Power-aware provisioning of cloud resources for real-time services[C]Proc of the 7th Int Workshop on Middleware for Grids. New York: ACM, 2009: 1-6[34]Wang Yijie, Sun Weidong, Zhou Song, et al. Key technologies of distributed storage for cloud computing[J]. Journal of Software, 2012, 23(4): 962-986 (in Chinese)(王意潔, 孫偉東, 周松, 等. 云計算環(huán)境下分布存儲關鍵技術[J]. 軟件學報, 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]Proc of the HotDep 2008. Berkeley, CA: USENIX Association, 2008[36]Weddle C, Oldham M, Qian J, et al. A gear-shifting power-aware raid[J]. ACM Trans on Storage, 2007, 3(3): 1553-1569[37]Li D, Wang J. Conserving energy in conventional disk based RAID systems[C]Proc of the 3rd Int Workshop on Storage Network Architecture and Parallel IOs (SNAPI 2005). Piscataway, NJ: IEEE, 2005: 65-72[38]Yao X, Wang J. Rimac: A novel redundancy-based hierarchical cache architecture for energy efficient, high performance storage systems[C]Proc of the EuroSys. New York: ACM, 2006: 249-262[39]Pinheiro E, Bianchini R, Dubnicki C. Exploiting redundancy to conserve energy in storage systems[C]Proc of the SIGMetrics Performance 2006. New York: ACM, 2006: 15-26[40]Narayanan D, Donnelly A, Rowstron A. Write off-loading: Practical power management for enterprise storage[J]. ACM Trans on Storage, 2008, 4(3): 253-267[41]Storer M, Greenan K, Miller E, et al. Pergamum: Replacing tape with energy efficient, reliable, disk-based archival storage[C]Proc of the FAST 2008. New York: ACM, 2008: 1-16[42]Zhu Q, Chen Z, Tan L, et al. Hibernator: Helping disk arrays sleep through the winter[C]Proc of the 20th ACM Symp on Operating Systems Principles (SOSP). New York: ACM, 2005: 177-190[43]Vasic N, Barisits M, Salzgeber V. Making cluster applications energy-aware[C]Proc of the ACDC 2009. New York: ACM, 2009: 37-42[44]Zhu Q, David F M, Devaraj C F, et al. Reducing energy consumption of disk storage using power-aware cache management[C]Proc of the HPCA 2004. Piscataway, NJ: IEEE, 2004: 118-129[45]Chen Y, Keys L, Katz R H. Towards energy efficient MapReduce[R]. Berkeley, CA: EECS Department, University of California, 2009[46]Leverich J, Kozyrakis C. On the energy (in)efficiency of Hadoop clusters[J]. ACM SIGOPS Operating Systems Review, 2010, 44 (1): 61-65[47]Kaushik R T, Bhandarkar M. GreenHDFS: Towards an energy-conserving, storage-efficient, hybrid Hadoop compute cluster[C]Proc of the 2010 Int Conf on Power Aware Computing and Systems. Piscataway, NJ: IEEE, 2010: 1-9[48]Kaushik R T, Bhandarkar M, Nahrstedt K. Evaluation and analysis of GreenHDFS: A self-adaptive, energy conserving variant of the Hadoop distributed file system[C]Proc of the 2nd IEEE Int Conf on Cloud Computing Technology and Science. Piscataway, NJ: IEEE, 2010: 274-287[49]Lang W, Patel J M. Energy management for MapReduce clusters[J]. Proceedings of the VLDB Endowment, 2010, 3(12): 129-139[50]Wirtz T, Ge R. Improving MapReduce energy efficiency for computation intensive workloads[C]Proc of Int Green Computing Conf and Workshops (IGCC). Piscataway, NJ: IEEE, 2011: 1-8[51]Goiri í, Le K, Nguyen T D, et al. GreenHadoop: Leveraging green energy in data-processing frameworks[C]Proc of the 7th ACM European Conf on Computer Systems. New York: ACM, 2012: 57-70[52]Cardosa M, Singh A, Pucha H, et al. Exploiting spatio-temporal tradeoffs for energy efficient MapReduce in the cloud[R]. Minneapolis, Minnesota:Department of Computer Science and Engineering, University of Minnesota, 2010[53]Chen Y, Ganapathi A, Katz R H. To compress or not to compress-compute vs IO tradeoffs for MapReduce energy efficiency[C]Proc of the 1st ACM SIGCOMM Workshop on Green Networking. New York: ACM, 2010: 23-28[54]Song Jie, Li Tiantian, Zhu Zhiliang, et al. Benchmarking and analyzing the energy consumption of cloud data management system[J]. Chinese Journal of Computers, 2013, 36(7): 1485-1499 (in Chinese)(宋杰, 李甜甜, 朱志良, 等. 云數(shù)據(jù)管理系統(tǒng)能耗基準測試與分析[J]. 計算機學報, 2013, 36(7): 1485-1499)[55]Lin Chuang, Tian Yuan, Yao Min. Green network and green evaluation: Mechanism, modeling and evaluation[J]. Chinese Journal of Computers, 2011, 34(4): 593-612 (in Chinese)(林闖, 田源, 姚敏. 綠色網(wǎng)絡和綠色評價: 節(jié)能機制、模型和評價[J]. 計算機學報, 2011, 34(4): 593-612)[56]Andrews M, Anta A F, Zhang L, et al. Routing for energy minimization in the speed scaling model[C]Proc of the 29th IEEE Int Conf on Computer Communications (INFOCOM 2010). Piscataway, NJ: IEEE, 2010: 1-9[57]Barroso L A, Holzle U. The case for energy-proportional computing[J]. Computer, 2007, 40(12): 33-37[58]Kansal A, Zhao F, Liu J, et al. Vitrual machine power metering and provisioning[C]Proc of the 1st ACM Symp on Cloud Computing. New York: ACM, 2010: 39-50[59]Harnik D, Naor D, Segall I. Low power mode in cloud storage systems[C]Proc of the IPDPS 2009. Piscataway, NJ: IEEE, 2009: 1-8[60]Bao Y, Chen M, Ruan Y, et al. HMTT: A platform independent full-system memory trace monitoring system[J]. ACM SIGMETRICS Performance Evaluation Review, 2008, 36(1): 229-240[61]Vasudevan V, Franklin J, Andersen D. FAWN damentally power-efficient clusters[C]Proc of the HotOS XII. Berkeley, CA: USENIX Association, 2009[62]Kim H S, Shin D I, Yu Y J, et al. Towards energy proportional cloud for data processing frameworks[C]Proc of the 1st USENIX Conf on Sustainable Information Technology. Berkeley, CA: USENIX Association, 2010: 1-8[63]Liao Bin, Yu Jiong, Sun Hua, 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 (in Chinese)(廖彬, 于炯, 孫華, 等. 基于存儲結構重配置的分布式存儲系統(tǒng)節(jié)能算法[J]. 計算機研究與發(fā)展, 2013, 50(1): 3-18)[64]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]Proc of the Cloud and Green Computing. Piscataway, NJ: IEEE, 2012: 219-225
[65]Liao Bin, Yu Jiong, Qian Yurong, 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 (in Chinese)(廖彬, 于炯, 錢育蓉, 等. 基于可用性度量的分布式文件系統(tǒng)節(jié)點失效恢復算法[J]. 計算機科學, 2013, 40(1): 144-149)

Liao Bin, born in 1986. PhD and associate professor in the School of Statistics and Information, Xinjiang University of Finance and Economics. His main research interests include database theory and technology, big data and green computing, etc.

Zhang Tao, born in 1988. PhD candidate in the School of Information Science and Engineering, Xinjiang University. Her main research interests include big data and cloud computing, etc.

Yu Jiong, born in 1964. Professor and PhD supervisor in computer science at the School of Software, Xinjiang University. His main research interests include on grid computing, parallel computing, etc.

Yin Lutong, born in 1992. MSc candidate in the School of Software, Xinjiang University. His main research interests include cloud and green computing, etc.

Guo Gang, born in 1990. MSc candidate in the School of Software, Xinjiang University. His main research interests include data mining and green computing, etc.

Guo Binglei, born in 1991. PhD candidate in the School of Information Science and Engineering, Xinjiang University. Her main research interests include cloud and green computing, etc.

2014年《計算機研究與發(fā)展》高被引論文TOP10
數(shù)據(jù)來源:中國知網(wǎng), CSCD;統(tǒng)計日期:2016-02-16
Energy Consumption Modeling and Optimization Analysis for MapReduce
Liao Bin1,4, Zhang Tao2,3, Yu Jiong2,4, Yin Lutong4, Guo Gang4, and Guo Binglei2,4
1(SchoolofStatisticsandInformation,XinjiangUniversityofFinanceandEconomics,Urumqi830012)2(SchoolofInformationScienceandEngineering,XinjiangUniversity,Urumqi830046)3(CollegeofMedicalEngineeringandTechnology,XinjiangMedicalUniversity,Urumqi830011)4(SchoolofSoftware,XinjiangUniversity,Urumqi830008)
The continuous expansion of the cloud computing centers scale and neglect of energy consumption factors exposed the problem of high energy consumption and low efficiency. To improve the MapReduce framework utilization of energy consumption, we build an energy consumption model for MapReduce framework. First, we propose a task energy consumption model which is based on CPU utilization estimation, energy consumption accumulation of main components and the average energy consumption estimation as well as the job energy consumption model of MapReduce. Specifically, after analyzing the energy optimization under energy consumption model, we come up with three directions to optimize energy consumption of MapReduce: optimize MapReduce energy consumption of job execution, reduce MapReduce energy consumption of task waiting and improve the energy utilization rate of MapReduce cluster. We further propose the data placement policy to decrease energy consumption of task waiting under heterogeneous environment and the minimum resource allocation algorithms to improve energy utilization rate of MapReduce jobs by the deadline constraints. A large number of experiments and data analysis of energy consumption demonstrate the effectiveness of energy consumption model and optimum policy of energy consumption.
green computing; task scheduling; energy consumption modeling; energy analysis; data layout
2014-12-30;
2016-02-16
國家自然科學基金項目(61562078,61262088,71261025);新疆財經(jīng)大學博士科研啟動基金項目(2015BS007)
TP393.09
This work was supported by the National Natural Science Foundation of China (61562078, 61262088, 71261025) and the PhD Research Startup Foundation of Xinjiang University of Finance and Economics (2015BS007).