司雅楠,阮 寧
(河南師范大學(xué)a.計算機(jī)與信息工程學(xué)院;b.新聯(lián)學(xué)院,河南 新鄉(xiāng)453007)
虛擬化Hadoop系統(tǒng)的數(shù)據(jù)資源調(diào)控與管理體系
司雅楠a,阮寧b
(河南師范大學(xué)a.計算機(jī)與信息工程學(xué)院;b.新聯(lián)學(xué)院,河南新鄉(xiāng)453007)
當(dāng)前,Hadoop系統(tǒng)所采取的本地化數(shù)據(jù)優(yōu)化方案還不能很好地應(yīng)用于虛擬化環(huán)境當(dāng)中,虛擬平臺相關(guān)數(shù)據(jù)的處理及數(shù)據(jù)存儲任務(wù)的優(yōu)化還存在一些問題。為此,對虛擬化Hadoop系統(tǒng)的數(shù)據(jù)本地化屬性進(jìn)行了分析,并從虛擬化Hadoop系統(tǒng)平臺的架構(gòu)模式出發(fā),提出分離式的系統(tǒng)平臺架構(gòu)模式,并以此為基礎(chǔ)建立虛擬化Hadoop的數(shù)據(jù)資源調(diào)控與管理體系。
虛擬化Hadoop;資源調(diào)度;數(shù)據(jù)本地化;在線遷移
進(jìn)入20世紀(jì)以來,互聯(lián)網(wǎng)數(shù)據(jù)分析技術(shù)已被普遍應(yīng)用在許多信息技術(shù)企業(yè)(如IMB、谷歌等)的數(shù)據(jù)管理中。分布式計算模式MapReduce[1]的出現(xiàn)使大數(shù)據(jù)技術(shù)在各大企業(yè)中得到了廣泛的應(yīng)用,而Hadoop作為其開源實現(xiàn)也備受關(guān)注[2]。Hadoop開發(fā)出一系列可供并行計算的框架模式,使IT產(chǎn)業(yè)的相關(guān)技術(shù)管理人員可以將工作重心放于企業(yè)業(yè)務(wù)的開展上,而無需擔(dān)心數(shù)據(jù)的容錯、負(fù)載等環(huán)節(jié)。隨著Hadoop的日益普及,利用Hadoop搭建系統(tǒng)的規(guī)模也逐漸擴(kuò)大,使用的環(huán)境也日益復(fù)雜,其所承載的數(shù)據(jù)內(nèi)容也不斷增多,因此,Hadoop中存在的問題也開始顯露出來,例如,Hadoop僅提供集成式的數(shù)據(jù)任務(wù)管理,僅支持單一性的程序調(diào)度模式等。為了解決Hadoop系統(tǒng)中MapReduce功能不足的問題,新一代的Hadoop的資源管理器YARN[3]產(chǎn)生了,相比于傳統(tǒng)的Hadoop,YARN具有更大的可擴(kuò)展空間,同時還可以兼容包括MapReduce在內(nèi)的多種不同的計算框架,例如Spark、REEF和DRYAD等。
傳統(tǒng)的Hadoop系統(tǒng)采用物理服務(wù)器進(jìn)行搭建,隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,這種搭建方式明顯無法滿足需要。隨著云計算技術(shù)的廣泛應(yīng)用,應(yīng)用平臺可以部署在虛擬化的數(shù)據(jù)中心,即云平臺中。虛擬集群的出現(xiàn)彌補(bǔ)了傳統(tǒng)物理服務(wù)器搭建方式存在的不足,但是也產(chǎn)生了一些問題,例如,Hadoop新的資源管理器YARN上所運行的計算框架MapReduce有大量的I/O操作,這些I/O操作包括本地讀寫和跨節(jié)點的讀寫兩種,而跨節(jié)點的數(shù)據(jù)傳輸則成為在虛擬化Hadoop系統(tǒng)中制約如MapReduce等應(yīng)用程序性能的主要因素。
本文將討論Hadoop系統(tǒng)虛擬化數(shù)據(jù)處理平臺的優(yōu)化問題,利用存儲節(jié)點與數(shù)據(jù)節(jié)點分割架構(gòu)的模式,將數(shù)據(jù)存儲節(jié)點與數(shù)據(jù)計算節(jié)點分別架構(gòu)在不同的虛擬平臺上,從而大幅度提升數(shù)據(jù)計算及存儲處理的調(diào)度與管理能力。通過建立Hadoop系統(tǒng)虛擬化數(shù)據(jù)處理平臺,提出一種能夠提升Hadoop系統(tǒng)應(yīng)用程序數(shù)據(jù)處理性能的資源調(diào)控模式:(1)在提交任務(wù)數(shù)據(jù)階段,通過對虛擬數(shù)據(jù)平臺計算能力的調(diào)節(jié),能夠有效地完成“數(shù)據(jù)節(jié)點任務(wù)本地化”的任務(wù);(2)在任務(wù)數(shù)據(jù)運行階段,將虛擬計算數(shù)據(jù)節(jié)點向?qū)嶓w主機(jī)存儲數(shù)據(jù)節(jié)點在線遷移[4],實現(xiàn)數(shù)據(jù)節(jié)點的本地化目的。
Hadoop系統(tǒng)中的分布式計算模式能夠利用并行計算模型,將大規(guī)模的數(shù)據(jù)計算作業(yè)分化為許多小規(guī)模數(shù)據(jù)計算任務(wù),每一個小規(guī)模數(shù)據(jù)計算任務(wù)僅處理一小部分?jǐn)?shù)據(jù),即一個數(shù)據(jù)塊(YARN數(shù)據(jù)計算平臺默認(rèn)分割數(shù)據(jù)塊的大小為128 MB)。按照指定的數(shù)據(jù)資源調(diào)控與管理模式,每一個小規(guī)模數(shù)據(jù)計算任務(wù)都被分配至指定的數(shù)據(jù)任務(wù)計算處理節(jié)點,同時,每個數(shù)據(jù)塊要保存多個副本。YARN數(shù)據(jù)計算平臺的默認(rèn)數(shù)據(jù)塊副本數(shù)為3,這3個副本以冗余備份的形式存在于3個不同的數(shù)據(jù)節(jié)點中。YARN數(shù)據(jù)資源調(diào)控與管理模式優(yōu)先把數(shù)據(jù)計算任務(wù)轉(zhuǎn)移至該任務(wù)所需的存儲節(jié)點中,如果相關(guān)數(shù)據(jù)存儲節(jié)點均已被占用,或無法實現(xiàn)對該數(shù)據(jù)任務(wù)的處理,那么,系統(tǒng)便會將該任務(wù)轉(zhuǎn)移至其他與之相匹配的數(shù)據(jù)任務(wù)處理節(jié)點中。
在傳統(tǒng)的Hadoop系統(tǒng)平臺內(nèi),根據(jù)數(shù)據(jù)處理任務(wù)所需要的節(jié)點以及所需處理數(shù)據(jù)任務(wù)的存儲節(jié)點之間的關(guān)系,可以將數(shù)據(jù)的本地化[5]屬性劃分為三類:跨平臺數(shù)據(jù)本地化屬性、平臺數(shù)據(jù)本地化屬性、數(shù)據(jù)節(jié)點本地化屬性。而在虛擬的Hadoop系統(tǒng)平臺內(nèi),由于增設(shè)了虛擬化的數(shù)據(jù)任務(wù)處理平臺,故將其數(shù)據(jù)的本地化屬性劃分為下述四類:1)跨平臺的數(shù)據(jù)本地化屬性,即任務(wù)計算所需要的節(jié)點與數(shù)據(jù)存儲節(jié)點未分布在相同的實體主機(jī)平臺上,同時,這些實體主機(jī)平臺也分布于不同的實體框架中;2)平臺數(shù)據(jù)本地化屬性,即任務(wù)計算所需要的節(jié)點與數(shù)據(jù)存儲節(jié)點未分布在相同的實體主機(jī)平臺上,但這些實體主機(jī)平臺分布于相同的實體框架中;3)實體主機(jī)數(shù)據(jù)節(jié)點本地化屬性,即任務(wù)計算所需要的節(jié)點與數(shù)據(jù)存儲節(jié)點位于相同的節(jié)點內(nèi),且分布于相同的實體主機(jī)框架中;4)虛擬主機(jī)數(shù)據(jù)本地化屬性,即任務(wù)計算所需要的節(jié)點與數(shù)據(jù)存儲節(jié)點位于相同的虛擬主機(jī)節(jié)點內(nèi)。
在相同的條件下,執(zhí)行不同數(shù)據(jù)本地化屬性的計算任務(wù)的響應(yīng)及處理速度由慢至快依次為跨平臺數(shù)據(jù)本地化、平臺數(shù)據(jù)本地化、實體主機(jī)數(shù)據(jù)節(jié)點本地化和虛擬主機(jī)數(shù)據(jù)本地化。在這四種本地化處理方式中,實體主機(jī)數(shù)據(jù)節(jié)點本地化與虛擬主機(jī)數(shù)據(jù)本地化的數(shù)據(jù)任務(wù)響應(yīng)與處理時間較為接近,而跨平臺數(shù)據(jù)本地化與平臺數(shù)據(jù)本地化的數(shù)據(jù)任務(wù)響應(yīng)與處理時間則分別為上述兩者的4倍與5倍。Hadoop系統(tǒng)平臺所搭載的應(yīng)用程序往往需做龐大的數(shù)據(jù)處理與數(shù)據(jù)傳輸操作,而且數(shù)據(jù)的虛擬化處理也會對I/O性能產(chǎn)生一定的影響,隨著數(shù)據(jù)任務(wù)處理量的增加,任務(wù)數(shù)據(jù)的本地化對數(shù)據(jù)任務(wù)的處理效率造成的影響也增大??梢姡嵘龑嶓w主機(jī)數(shù)據(jù)節(jié)點本地化屬性以及虛擬主機(jī)數(shù)據(jù)本地化屬性能夠有效地降低任務(wù)數(shù)據(jù)節(jié)點之間的數(shù)據(jù)傳輸量,進(jìn)而提升應(yīng)用程序執(zhí)行相關(guān)數(shù)據(jù)處理任務(wù)的效率。
2.1傳統(tǒng)的平臺架構(gòu)模式
傳統(tǒng)的Hadoop系統(tǒng)平臺通常架構(gòu)在實體主體內(nèi)部。在虛擬化環(huán)境下,也可以利用這種架構(gòu)模式[6],其邏輯構(gòu)架如圖1所示。圖1中,DN(Data Node,數(shù)據(jù)節(jié)點)用來存放具體數(shù)據(jù)塊,NM(Node Manager,節(jié)點管理器)對節(jié)點進(jìn)行管理,NN(Name Node,名字節(jié)點)用來存放元數(shù)據(jù),RM(Resource Manager,資源管理器)為系統(tǒng)提供資源調(diào)度管理。在這種構(gòu)架中,計算節(jié)點同時也作為存儲節(jié)點使用,這樣可以在一定程度上確保數(shù)據(jù)節(jié)點任務(wù)處理的本地化屬性。
圖1 傳統(tǒng)Hadoop系統(tǒng)平臺邏輯架構(gòu)模式
在虛擬化環(huán)境中,這種傳統(tǒng)Hadoop系統(tǒng)平臺架構(gòu)模式存在以下問題。
(1)系統(tǒng)的擴(kuò)展能力差。在虛擬的環(huán)境中,系統(tǒng)平臺能夠通過對虛擬主機(jī)數(shù)量的增加或減少來實現(xiàn)對虛擬集群的擴(kuò)容和縮容。而在虛擬化的Hadoop系統(tǒng)平臺內(nèi),可以根據(jù)所需計算節(jié)點的數(shù)目動態(tài)地增、減虛擬機(jī)數(shù)量,從而在高效完成計算任務(wù)的同時節(jié)省資源和成本。但是,在傳統(tǒng)的Hadoop平臺架構(gòu)模式中,任務(wù)數(shù)據(jù)計算節(jié)點還兼作數(shù)據(jù)的存儲節(jié)點,這樣使得在增加或減少虛擬數(shù)據(jù)節(jié)點時,系統(tǒng)不得不增加或減少相應(yīng)的數(shù)據(jù)存儲節(jié)點:增加相應(yīng)的數(shù)據(jù)存儲節(jié)點就會提升執(zhí)行相關(guān)數(shù)據(jù)處理任務(wù)的資源成本;減少相應(yīng)的數(shù)據(jù)存儲節(jié)點就會導(dǎo)致數(shù)據(jù)節(jié)點存儲副本不足,進(jìn)而造成系統(tǒng)后臺數(shù)據(jù)備份性能下降。
(2)利用虛擬機(jī)對數(shù)據(jù)進(jìn)行轉(zhuǎn)移的效率較低。在虛擬的網(wǎng)絡(luò)數(shù)據(jù)環(huán)境下,為了能夠提升數(shù)據(jù)資源的使用效率,減少資源消耗,并盡可能地使物理機(jī)的維護(hù)更加便利,在通常情況下,會采用在線數(shù)據(jù)轉(zhuǎn)移的方式,使虛擬機(jī)進(jìn)行數(shù)據(jù)負(fù)載整合。在上述架構(gòu)模式中,虛擬機(jī)不但可以作為數(shù)據(jù)任務(wù)處理節(jié)點,也可以作為數(shù)據(jù)任務(wù)的存儲節(jié)點,這使虛擬機(jī)在遷移時產(chǎn)生大量的數(shù)據(jù)轉(zhuǎn)移。
利用傳統(tǒng)架構(gòu)模式的虛擬化Hadoop平臺系統(tǒng),如1中所述的四種平臺數(shù)據(jù)本地化屬性均存在。即使YARN資源調(diào)控管理模式對數(shù)據(jù)本地化問題有所考慮,但其所采取的架構(gòu)模式在實際的數(shù)據(jù)處理任務(wù)中也不能確保虛擬主機(jī)數(shù)據(jù)的本地化屬性,且在虛擬化Hadoop系統(tǒng)平臺下,因為增設(shè)了虛擬的數(shù)據(jù)處理平臺,數(shù)據(jù)副本被劃分為兩個不同的層次,所以也會對傳統(tǒng)Hadoop系統(tǒng)平臺中的數(shù)據(jù)本地化水平產(chǎn)生一定程度的負(fù)面影響。
2.2分離式架構(gòu)模式
在虛擬化環(huán)境下,還有一種Hadoop系統(tǒng)平臺架構(gòu)模式,即分離式架構(gòu)模式。在這種架構(gòu)模式中,數(shù)據(jù)的計算節(jié)點與存儲節(jié)點分別被設(shè)置在不同的虛擬機(jī)內(nèi),如圖2所示。圖2中,虛擬機(jī)NN與虛擬機(jī)RM運行在同一臺物理機(jī)中,當(dāng)然這兩臺虛擬機(jī)也可以分別運行在不同的物理機(jī)上。
圖2 分離式平臺邏輯架構(gòu)模式
分離式架構(gòu)模式能夠有效地解決傳統(tǒng)Hadoop平臺架構(gòu)模式中存在的問題,并具備如下優(yōu)勢:1)具備較強(qiáng)的擴(kuò)展能力,系統(tǒng)平臺能夠獨立地增加或減少數(shù)據(jù)任務(wù)處理節(jié)點的數(shù)量,而數(shù)據(jù)任務(wù)存儲節(jié)點不受影響,故不會對后臺數(shù)據(jù)副本服務(wù)性能造成不良的影響;2)虛擬主機(jī)能夠進(jìn)行靈活的轉(zhuǎn)移,當(dāng)數(shù)據(jù)任務(wù)處理節(jié)點進(jìn)行轉(zhuǎn)移時,其數(shù)據(jù)任務(wù)存儲節(jié)點不需轉(zhuǎn)移。
Hadoop中的MapReduce計算模式把數(shù)據(jù)的計算過程分解成兩個階段:Map和Reduce。這兩個階段又分別對應(yīng)了兩個處理函數(shù):mapper和reducer。在YARN平臺中,用戶程序中的MapReduce庫將數(shù)據(jù)文件分化為許多的數(shù)據(jù)塊(默認(rèn)為128 MB),在Map階段,每個Map處理一個小數(shù)據(jù)塊,原始數(shù)據(jù)被輸入mapper中進(jìn)行過濾和轉(zhuǎn)換,所獲得的中間數(shù)據(jù)在Reduce階段作為reducer函數(shù)的輸入,經(jīng)過reducer的聚合處理后生成最終結(jié)果。
本文提出的數(shù)據(jù)資源調(diào)控與管理體系的架構(gòu)模式如圖3所示,該調(diào)控與管理體系主要包括四個環(huán)節(jié),分別是遷移控制器、作業(yè)解析器、資源調(diào)節(jié)器以及任務(wù)解析器。圖3中的序號表示的是該調(diào)控與管理體系具體的工作順序與流程。
作業(yè)被發(fā)送至作業(yè)解析器后(如圖3步驟1),作業(yè)解析器對該作業(yè)包含的所有任務(wù)內(nèi)容以及每項任務(wù)涉及的數(shù)據(jù)塊副本所在的位置信息進(jìn)行解析。根據(jù)YARN資源調(diào)節(jié)模式,若某項數(shù)據(jù)處理任務(wù)能夠被調(diào)節(jié)至符合實體主機(jī)數(shù)據(jù)本地化屬性的數(shù)據(jù)任務(wù)處理節(jié)點中,那么該任務(wù)便不需要進(jìn)行調(diào)節(jié);否則,便由資源調(diào)節(jié)器(圖3步驟2)按照數(shù)據(jù)塊副本的位置分布信息,選擇具有提升數(shù)據(jù)處理能力的計算節(jié)點所在的虛擬機(jī),并利用資源調(diào)節(jié)器來提升該計算節(jié)點的計算能力。在對虛擬機(jī)計算節(jié)點的計算能力進(jìn)行調(diào)整的過程中,若出現(xiàn)節(jié)點所處的宿主機(jī)無法增加計算能力來滿足該計算節(jié)點需要的情況時,就需要將該宿主機(jī)上的一些虛擬機(jī)通過遷移控制器(圖3步驟3)在線遷移到其他宿主機(jī)上,再利用資源調(diào)節(jié)器(圖3步驟4)對遷移后宿主機(jī)上虛擬機(jī)的計算能力進(jìn)行調(diào)節(jié)。
在上述調(diào)整過程中,對最終仍不能實現(xiàn)宿主機(jī)數(shù)據(jù)本地化的數(shù)據(jù)計算任務(wù),可以利用YARN默認(rèn)的處理模式,即盡可能地將其轉(zhuǎn)移至平臺數(shù)據(jù)本地化的數(shù)據(jù)處理與計算節(jié)點中運行。在運行過程中,任務(wù)解析器(圖3步驟5)負(fù)責(zé)對任務(wù)運行中的數(shù)據(jù)狀態(tài)、數(shù)據(jù)本地化屬性、數(shù)據(jù)分析處理進(jìn)度,特別是未符合“實體主機(jī)數(shù)據(jù)本地化屬性”的數(shù)據(jù)進(jìn)行監(jiān)控,對數(shù)據(jù)計算處理進(jìn)度明顯落后于其他處理進(jìn)度的任務(wù),由遷移控制器(圖3步驟6)按照數(shù)據(jù)任務(wù)副本的劃分情況以及宿主機(jī)系統(tǒng)資源的剩余狀況,篩選出符合該宿主機(jī)數(shù)據(jù)本地化屬性的宿主機(jī),隨后對該計算節(jié)點所在的虛擬機(jī)進(jìn)行在線遷移。
圖3 數(shù)據(jù)資源調(diào)控與管理體系
隨著互聯(lián)網(wǎng)數(shù)據(jù)分析技術(shù)應(yīng)用的日益普遍,各大信息企業(yè)對系統(tǒng)平臺的數(shù)據(jù)任務(wù)處理要求也不斷提高,即對其任務(wù)處理能力、任務(wù)處理效率的要求逐漸增加,而傳統(tǒng)的Hadoop已不能滿足新型信息技術(shù)企業(yè)的發(fā)展要求,需要形成新的系統(tǒng)平臺架構(gòu)模式、更高效的系統(tǒng)數(shù)據(jù)處理平臺以及功能更強(qiáng)大的虛擬化數(shù)據(jù)調(diào)控與管理體系。
本文以這種需求為基礎(chǔ),從傳統(tǒng)Hadoop系統(tǒng)平臺存在的缺陷及問題出發(fā),提出相應(yīng)的系統(tǒng)架構(gòu)模式以及數(shù)據(jù)調(diào)控管理體系,為今后系統(tǒng)數(shù)據(jù)平臺的架構(gòu)與設(shè)立提供參考。
[1]張文光,陳俊,姚鈺輝,等.分布式網(wǎng)絡(luò)環(huán)境中基于MapReduce的WordCount實現(xiàn)[J].貴州師范大學(xué)學(xué)報(自然科學(xué)版),2015(1):93-97.
[2]Apache Software Foundation.Hadoop[EB/OL].(2015-06-09)[2015-10-12].http://hadoop.apache.org.
[3]董西成.Hadoop技術(shù)內(nèi)幕:深入解析YARN架構(gòu)設(shè)計與實現(xiàn)原理[M].北京:機(jī)械工業(yè)出版社,2013:153-184.
[4]蘭雨晴,申騫,劉銘.云計算環(huán)境中在線遷移技術(shù)研究[J].電信科學(xué),2010(9):90-94.
[5]徐永士,霍菁,孫功星.一種數(shù)據(jù)本地化存儲與處理系統(tǒng)[J].計算機(jī)工程與應(yīng)用,2012(5):7-11.
[6]楊卓犖.基于YARN構(gòu)建多功能分布式集群[J].程序員,2013(11):105-107.
【責(zé)任編輯梅欣麗】
Data Resources Control and Management System for Virtual Hadoop System
SI Yanana,RUAN Ningb
(a.College of Conmputer and Information Engineering;b.Xinlian College,Henan Normal University,Xinxiang 453007,China)
The current localization optimization data scheme adopted for Hadoop system platform could not be well applied in virtual environment,which prevented the optimization of virtual platform from processing the related data calculation and data storage.This paper conducted analysis according to the data localization property of Hadoop system platform.From the structure mode of virtual Hadoop system platform,it put forward separated type system platform structure mode,and on which,it established the data resource control and management system of virtual Hadoop system platform.
virtual Hadoop;resources control;data localization;live migration;localization property
TP391
A
2095-7726(2016)03-0029-04
2015-12-20
司雅楠(1987-),女,河南新鄉(xiāng)人,碩士,研究方向:大數(shù)據(jù)。阮寧(1988-),男,河南駐馬店人,碩士,研究方向:數(shù)據(jù)挖掘。