王嘉儀
摘要 計(jì)算機(jī)技術(shù)的發(fā)展導(dǎo)致互聯(lián)網(wǎng)中積聚了大量的信息,如何對(duì)這些大量數(shù)據(jù)進(jìn)行搜集、篩選以及處理成為一個(gè)重要的課題。在此背景下,簡(jiǎn)單易用的MapReduce成為目前大數(shù)據(jù)處理最成功的主流并行計(jì)算模式。本文對(duì)大數(shù)據(jù)背景下MapReduce并行計(jì)算模式研究現(xiàn)狀進(jìn)行了分析,并且展望了該領(lǐng)域的發(fā)展態(tài)勢(shì)。
【關(guān)鍵詞】大數(shù)據(jù) 并行計(jì)算 研究進(jìn)展
近幾年來(lái),隨著計(jì)算機(jī)和信息技術(shù)的迅猛發(fā)展和普及應(yīng)用,行業(yè)應(yīng)用系統(tǒng)的規(guī)模迅速擴(kuò)大,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)呈爆炸性增長(zhǎng)。動(dòng)輒達(dá)到數(shù)百TB甚至數(shù)十至數(shù)百PB規(guī)模的行業(yè)/企業(yè)大數(shù)據(jù)己遠(yuǎn)遠(yuǎn)超出了傳統(tǒng)的計(jì)算技術(shù)和信息系統(tǒng)的處理能力,因此,尋求有效的大數(shù)據(jù)處理技術(shù)、方法和手段已經(jīng)成為全世界的廣泛關(guān)注的研究熱點(diǎn)。
MapReduce最早是由Google公司研究提出的一種面向大規(guī)模數(shù)據(jù)處理的并行計(jì)算模型和方法。2003年和2004年,Google公司在國(guó)際會(huì)議上分別發(fā)表了兩篇關(guān)于Google分布式文件系統(tǒng)和MapReduce的論文,公布了Google的GFS和MapReduce的基本原理和主要設(shè)計(jì)思想:MapReduce對(duì)具有簡(jiǎn)單數(shù)據(jù)關(guān)系、易于劃分的大規(guī)模數(shù)據(jù)采用“分而治之”的并行處理思想;然后將大量重復(fù)的數(shù)據(jù)記錄處理過(guò)程總結(jié)成Map和Reduce兩個(gè)抽象的操作;最后MapReduce提供了一個(gè)統(tǒng)一的并行計(jì)算框架,把并行計(jì)算所涉及到的諸多系統(tǒng)層細(xì)節(jié)都交給計(jì)算框架去完成,以此大大簡(jiǎn)化了程序員進(jìn)行并行化程序設(shè)計(jì)的負(fù)擔(dān)。目前,MapReduce的簡(jiǎn)單易用性使其成為目前大數(shù)據(jù)處理最成功的主流并行計(jì)算模式。本文對(duì)近年來(lái)MapReduce并行計(jì)算模式性能優(yōu)化研究進(jìn)展做出簡(jiǎn)要介紹。
1 面向新型硬件的性能優(yōu)化
MapReduce在最初推出時(shí)將更多的焦點(diǎn)放在了工作節(jié)點(diǎn)之間的高層次并行,而忽略了對(duì)于多核或者GPU等新型硬件的具有針對(duì)性的優(yōu)化處理。為了克服MapReduce的缺陷,相關(guān)的人員不斷進(jìn)行研究創(chuàng)新,進(jìn)而提出了Phoenix。至此之后,諸多的學(xué)者針對(duì)Phoenix進(jìn)行了大量的研究,例如,Yoo、Romano和Kozyrakis以UltraSPARC處理器為基礎(chǔ)針對(duì)MapReduce進(jìn)行了性能改善,改善的方面包括算法、實(shí)現(xiàn)和OS接口等。Rafique等、Linderman等則分析了MapReduce在不對(duì)稱的多核集群和異構(gòu)多核集群方面面臨的挑戰(zhàn),并且針對(duì)這些挑戰(zhàn)提出了應(yīng)對(duì)的辦法。在此基礎(chǔ)上,為了進(jìn)一步改善計(jì)算能力,諸多學(xué)者對(duì)計(jì)算模式也進(jìn)行了大量的研究,研究的方向主要包括改善迭代能力、提高調(diào)度效率、改善流水線處理以及增加索引等。
2 面向流處理的性能優(yōu)化
大數(shù)據(jù)環(huán)境中,數(shù)據(jù)流的特點(diǎn)是數(shù)據(jù)所擁有的價(jià)值與其時(shí)效存在密切的聯(lián)系,隨著時(shí)間的延長(zhǎng),數(shù)據(jù)所具有的價(jià)值也會(huì)隨之降低,這就意味著在改善數(shù)據(jù)流系統(tǒng)時(shí)需要將低延遲作為遵循的首要原則。傳統(tǒng)的MapReduce數(shù)據(jù)流處理手段主要將沒有任何邊界的數(shù)據(jù)流分割成相對(duì)較小的而且具有明顯邊界的批處理集,然后采用批處理方式對(duì)數(shù)據(jù)進(jìn)行挖掘研究。這種方式存在著一定的局限性,會(huì)產(chǎn)生很多不是十分重要的磁盤和網(wǎng)絡(luò)I/O,這樣就不能達(dá)到流式應(yīng)用對(duì)于實(shí)時(shí)性的需求。
為了進(jìn)一步改善流處理模式的性能,很多學(xué)者嘗試將MapReduce模型和具有代表性的數(shù)據(jù)流系統(tǒng)進(jìn)行融合,進(jìn)而產(chǎn)生效率更高的處理框架。Kumar等以IBM的System數(shù)據(jù)流處理中間件為載體,對(duì)MapReduce模型進(jìn)行了改善,進(jìn)而研發(fā)了DEDUCE系統(tǒng),該系統(tǒng)的優(yōu)勢(shì)在于可以在同一時(shí)間進(jìn)行數(shù)據(jù)的批量和流處理。C-MR則將滑動(dòng)窗口理念融合到MapReduce模型中,進(jìn)而保證數(shù)據(jù)流能夠在不間斷的情況下持續(xù)進(jìn)行,這種改善方法的缺陷在與這種方式僅僅適用于具有多核的單機(jī)系統(tǒng)。
3 面向圖數(shù)據(jù)的性能優(yōu)化
社交網(wǎng)絡(luò)、Web鏈接關(guān)系圖等都包含大量具有復(fù)雜關(guān)系的圖數(shù)據(jù),這些圖數(shù)據(jù)規(guī)模很大,常常達(dá)到數(shù)十億的頂點(diǎn)和上萬(wàn)億的邊數(shù),傳統(tǒng)的MapReduce計(jì)算模式處理這種具有復(fù)雜數(shù)據(jù)關(guān)系的圖數(shù)據(jù)通常不能適應(yīng),需要采用專用圖并行計(jì)算模型則將圖計(jì)算所具有基礎(chǔ)特點(diǎn)考慮在內(nèi),即該種處理模式的內(nèi)部就已經(jīng)具備了專門針對(duì)大圖的處理機(jī)制。圖數(shù)據(jù)處理主要解決大規(guī)模數(shù)據(jù)的分布式存儲(chǔ)管理問(wèn)題。由于圖數(shù)據(jù)具有很強(qiáng)的數(shù)據(jù)關(guān)系,分布式環(huán)境中的圖計(jì)算網(wǎng)絡(luò)通信的成本很高,解決這一問(wèn)題的方式是圖劃分,傳統(tǒng)的圖劃分方式包括ParMetis等,近年來(lái)很多學(xué)者開始研究新的圖劃分方法,例如Trinity使用多層標(biāo)簽傳遞的劃分方式,GPS和Mizan則使用動(dòng)態(tài)劃分方式。
4 結(jié)論
盡管MapReduce計(jì)算模型存在一些不足,但由于MapReduce己發(fā)展成為目前最主流的大數(shù)據(jù)處理并行計(jì)算模式、并得到廣泛的使用,因此,目前研究者并不會(huì)拋棄MapReduce模型,而是試圖不斷改進(jìn)和發(fā)展現(xiàn)有的平臺(tái),增加其對(duì)各種不同大數(shù)據(jù)處理問(wèn)題的適用性,以便能解決現(xiàn)有版本在計(jì)算性能、計(jì)算模式、系統(tǒng)構(gòu)架和處理能力上的諸多不足。
參考文獻(xiàn)
[1]ONIZUKA M,KATO H,HIDAKA S,et al.Optimization for iterative queries onMap Reduce[C].Proceedings of the VLDBEndowment (VLDB 2014),2 014,7 (04).
[2]SHAO B,WANG H,LIY.Trinity:adistributed graph engine on amemory cloud [C]. Proceedings of theACMSIGMOD
Interna tional
Conferenceon Management of Data (SIGMOD 2013).New York: [s.n.],2 013:5 05-516.
[3]TIAN Y,BALMIN A,CORSTEN SA, et al.From" Think Like a Vertex" to" ThinkLike a Graph” [C].Proceedingsof the VLDB Endowment (VLDB2013),20t3,7 (03):193-204.