999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MapReduce迭代式計(jì)算發(fā)展與應(yīng)用

2017-05-31 06:51:26馬在營劉建新徐彬
軟件導(dǎo)刊 2017年5期

馬在營 劉建新 徐彬

摘要摘要:MapReduce的優(yōu)勢集中體現(xiàn)在并行計(jì)算上,而在迭代計(jì)算上則存在諸多不足。科研人員不斷對MapReduce并行計(jì)算模型進(jìn)行迭代計(jì)算優(yōu)化,使MapReduce可以支持顯示迭代式計(jì)算。介紹了傳統(tǒng)MapReduce框架與迭代式MapReduce框架,通過K-means算法測試了iMapReduce、Hadoop MapReduce的迭代性能,給出了實(shí)驗(yàn)結(jié)果及分析。

關(guān)鍵詞關(guān)鍵詞:迭代式計(jì)算;MapReduce;Haloop;Hadoop;iMapReduce

DOIDOI:10.11907/rjdk.162775

中圖分類號:TP301

文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2017)005020703

0引言

在全球信息產(chǎn)業(yè)高速發(fā)展融合的背景下,網(wǎng)絡(luò)數(shù)據(jù)資源規(guī)模急劇膨脹,尤其是高能物理、互聯(lián)網(wǎng)應(yīng)用、基因工程、電子商務(wù)以及計(jì)算機(jī)仿真等領(lǐng)域的數(shù)據(jù)量攀升速度驚人,現(xiàn)有數(shù)據(jù)分析工具很難滿足日益增長的海量密集型數(shù)據(jù)的信息處理需求。基于此,Google實(shí)驗(yàn)室專門設(shè)計(jì)了MapReduce編程模型,該模型在數(shù)據(jù)信息的批量處理上優(yōu)勢明顯,但在迭代處理上問題也相當(dāng)突出。逐次逼近是迭代計(jì)算的基本思想,迭代計(jì)算過程為先取近似值,然后采用遞推公式對近似值反復(fù)校正,直至精度達(dá)到要求為止。當(dāng)數(shù)據(jù)量較小時(shí),可以在單機(jī)上進(jìn)行迭代計(jì)算,但當(dāng)數(shù)據(jù)量非常大時(shí),迭代處理則極其耗時(shí)。在數(shù)據(jù)挖掘、信息檢索、機(jī)器學(xué)習(xí)等領(lǐng)域,有很多算法需要迭代,傳統(tǒng)的迭代計(jì)算不能有效應(yīng)對當(dāng)前的大數(shù)據(jù)處理需求。經(jīng)過幾年時(shí)間,科研工作者對MapReduce進(jìn)行迭代計(jì)算改進(jìn),產(chǎn)生了一些迭代式計(jì)算框架,包括比較知名的Twister、Haloop等。

1傳統(tǒng)MapReduce模型框架

Google于2004年在論文《分布式計(jì)算:基于大型集群的數(shù)據(jù)簡化處理》中首次提出MapReduce框架,指出MapReduce框架在處理密集型應(yīng)用數(shù)據(jù)過程中將處理程序簡化抽象為Map與Reduce兩個(gè)階段,用戶在進(jìn)行分布式程序設(shè)計(jì)過程中,只需調(diào)用reduce()和map()兩個(gè)函數(shù)即可,無需過多考慮任務(wù)調(diào)度、設(shè)備通信、數(shù)據(jù)分片以及容錯(cuò)等細(xì)節(jié)問題。在MapReduce框架內(nèi),這些問題都能得到很好的處理。作為MapReduce框架的主要思想,Map與Reduce來自函數(shù)編程語言,其原理如圖1所示。Map將數(shù)據(jù)打散,Reduce則負(fù)責(zé)聚集這些數(shù)據(jù)。在Map環(huán)節(jié),maptask每讀取一個(gè)block,即采用map()函數(shù)對數(shù)據(jù)進(jìn)行處理,同時(shí)將處理結(jié)果寫入本地磁盤;在Reduce環(huán)節(jié),每個(gè)reduce task在對Map Task節(jié)點(diǎn)數(shù)據(jù)進(jìn)行遠(yuǎn)程讀取過程中,都會采用reduce()函數(shù)處理數(shù)據(jù),同時(shí)將處理完成的數(shù)據(jù)寫入分布式文件系統(tǒng)內(nèi)。在MapReduce框架內(nèi),用戶只要通過map和reduce端口,即可快速計(jì)算TB級數(shù)據(jù),如數(shù)據(jù)挖掘和日志分析等常見應(yīng)用。此外,MapReduce框架還適用于圓周率等科學(xué)數(shù)據(jù)的計(jì)算。

通過上述分析可知,在傳統(tǒng)MapReduce框架內(nèi),無論是map環(huán)節(jié),還是reduce環(huán)節(jié),數(shù)據(jù)處理結(jié)果均需寫入磁盤內(nèi),雖然這一過程會降低系統(tǒng)性能,但是能夠提高系統(tǒng)可靠性。也正因如此,傳統(tǒng)MapReduce在迭代計(jì)算處理上問題突出,若用戶強(qiáng)行在傳統(tǒng)MapReduce上進(jìn)行迭代計(jì)算,系統(tǒng)性能則會變得非常差。

2迭代式MapReduce框架

2.1Twister

在Twister內(nèi),大文件不會被自動切割為單個(gè)block,所以用戶必須提前將文件分割為小文件才能進(jìn)行task處理。在map環(huán)節(jié),調(diào)用map()函數(shù)處理后,數(shù)據(jù)結(jié)果存儲于分布式內(nèi)存之中,然后利用broker network將數(shù)據(jù)推送至reduce task(若Twister內(nèi)存較大,則所有中間數(shù)據(jù)都能存儲其中);在reduce環(huán)節(jié),通過combine對reducetask產(chǎn)生的結(jié)果進(jìn)行歸并,此時(shí)用戶可依據(jù)條件作出是否結(jié)束迭代計(jì)算的決定。合并后的數(shù)據(jù)被分解傳送至map task,進(jìn)行新一輪迭代計(jì)算。為有效提高系統(tǒng)容錯(cuò)性,Twister會定時(shí)將reducetask和maptask產(chǎn)生的結(jié)果錄入磁盤內(nèi),避免task失敗后數(shù)據(jù)丟失。即使task失敗,依然可以從磁盤內(nèi)調(diào)取數(shù)據(jù)重新進(jìn)行迭代處理。Twister架構(gòu)如圖2所示。

為避免用戶在迭代計(jì)算中對task的重建,Twister建立了一個(gè)taskpool,當(dāng)用戶需要使用task時(shí),可直接從pool中讀取。在Twister內(nèi),所有數(shù)據(jù)與消息均由broker network傳遞,brokernetwork是獨(dú)立模塊,現(xiàn)階段僅支持ActiveMQ和NaradaBroking。目前Twister尚屬于研究性項(xiàng)目,其設(shè)計(jì)策略決定了Twister還不能在實(shí)際中得到廣泛應(yīng)用。例如Twister將數(shù)據(jù)存儲于分布式內(nèi)存中,而缺乏分布式文件系統(tǒng),僅提供tool對文件進(jìn)行訪問與存儲,并存在迭代計(jì)算模型不夠抽象、支持應(yīng)用類型偏少等問題。

2.2Haloop

Haloop是Haloop Mapreduce 的修改版,Haloop不僅擴(kuò)展了分布迭代編程,并通過使用任務(wù)調(diào)度器loopaware添加各種緩存機(jī)制,大大提高了效率。其架構(gòu)如圖3所示。

圖3有3個(gè)工作在運(yùn)行,工作1、工作2、工作3。每個(gè)工作都有3個(gè)任務(wù)同時(shí)從slave節(jié)點(diǎn)上運(yùn)行。為了適應(yīng)迭代計(jì)算,Haloop以Hadoop為基礎(chǔ)作了一些調(diào)整:①Haloop提供了一個(gè)新的應(yīng)用程序用戶編程接口,簡化了迭代表達(dá)式的表達(dá);②Haloop的master節(jié)點(diǎn)包含一個(gè)新的loop控制模塊,可以指定迭代停止條件;③Haloop為迭代計(jì)算使用一個(gè)新的任務(wù)調(diào)度器,可以將數(shù)據(jù)本地化;④Haloop的緩存和索引應(yīng)用程序在slave節(jié)點(diǎn)上。

(1)在Haloop內(nèi)迭代式任務(wù)全部被抽象為:

Ro代表初始輸入,Ri代表第i次迭代的結(jié)果,L是迭代計(jì)算中保持不變的數(shù)據(jù)。Haloop主要編程接口為:

SetFixedPointThreshold:設(shè)置好迭代計(jì)算的結(jié)束條件,即距離差的閾值。

Set the number of iterations:設(shè)置迭代次數(shù)。

Setiterationinput:設(shè)置迭代變化輸入數(shù)據(jù)。

AddinvariantTable:設(shè)置不變的輸入數(shù)據(jù)。

(2) Loop-aware 任務(wù)調(diào)度。 Haloop 在初次迭代計(jì)算中會將不變的輸入數(shù)據(jù)存儲于計(jì)算節(jié)點(diǎn)中,以便后續(xù)的task調(diào)度,且數(shù)據(jù)應(yīng)當(dāng)盡量存儲于locality等固定節(jié)點(diǎn)中,使每次迭代計(jì)算時(shí)無需重新傳輸數(shù)據(jù)。

(3)Index與Cache。無論是map task的輸入還是輸出,reducetask的輸出都會通過緩存與建索引來加快迭代計(jì)算速度。其中,緩存主要指迭代計(jì)算結(jié)果被寫入磁盤以供循環(huán)迭代使用。

總體來看,與Twister相比,Haloop更為抽象,能夠支持多種計(jì)算。此外,Haloop是在Hadoop基礎(chǔ)上優(yōu)化改進(jìn)而成,因此具備Hadoop的優(yōu)點(diǎn)。

2.3iMapReduce

張巖峰在論文《iMapReduce:分布式計(jì)算框架迭代計(jì)算》中提出iMapReduce概念,iMapReduce是以盡量減少系統(tǒng)開銷為目的而構(gòu)建的高效迭代計(jì)算框架。MapReduce需要一系列的迭代作業(yè)來處理迭代計(jì)算,圖4左圖是MapReduce迭代處理過程。在iMapReduce中,迭代任務(wù)只發(fā)生在初始階段和結(jié)束階段,用戶僅需建立一個(gè)作業(yè)任務(wù)即能完成迭代計(jì)算,避免了對系統(tǒng)的反復(fù)開銷。通過對本地靜態(tài)數(shù)據(jù)的維護(hù),減少因反復(fù)加載數(shù)據(jù)而產(chǎn)生的系統(tǒng)開銷,同時(shí)允許在單次迭代計(jì)算中異步執(zhí)行map任務(wù)。iMapReduce極大地提高了迭代算法性能。圖4展示了iMapReduce的迭代計(jì)算過程。iMapReduce為用戶提供編程的API接口。iMapReduce兼容Hadoop MapReduce任務(wù),用戶可根據(jù)實(shí)際決定是否啟用iMapReduce功能。iMapReduce將靜態(tài)數(shù)據(jù)和迭代數(shù)據(jù)區(qū)分開。圖5是iMapReduce迭代計(jì)算節(jié)點(diǎn)數(shù)據(jù)流,在初始環(huán)節(jié)中,靜態(tài)數(shù)據(jù)與迭代數(shù)據(jù)被加載至本地文件系統(tǒng),其中靜態(tài)數(shù)據(jù)始終存儲于本地文件系統(tǒng)內(nèi),而迭代數(shù)據(jù)在調(diào)用map()函數(shù)處理前,需要同靜態(tài)數(shù)據(jù)聯(lián)合執(zhí)行操作,即將靜態(tài)數(shù)據(jù)與迭代數(shù)據(jù)連接起來,作為map()函數(shù)輸入。

通過這些迭代優(yōu)化,使iMapReduce更加適合大數(shù)據(jù)迭代處理,并且提供了編程接口API,兼容HadoopMapreduce任務(wù),用戶可選擇是否啟用iMapReduce的迭代處理功能。

3MapReduce迭代計(jì)算迭代性能測試

3.1實(shí)驗(yàn)設(shè)計(jì)

集群環(huán)境由5臺計(jì)算機(jī)組成(1個(gè)Master節(jié)點(diǎn),4個(gè)Slave節(jié)點(diǎn)),系統(tǒng)為64位Windows7,處理器為i7-4790 3.60GHz,內(nèi)存8GB,網(wǎng)速10Mb/s。

K-means 算法是聚類分析中使用最廣泛的算法之一,可用于測試不同平臺的迭代性能。已知觀測集(x1,x2,x3,...,xn),其中每個(gè)觀測都是一個(gè)d維實(shí)向量,k-平均聚類要將這n個(gè)觀測劃分到k個(gè)集合中(k≤n),使組內(nèi)平方和(WCSS,Within-Cluster Sum of Squares)最小。換言之,它的目標(biāo)是找到使式(1)滿足的聚類Si,其中μi是Si中所有點(diǎn)的均值。簡單描述為:不斷迭代計(jì)算各個(gè)數(shù)據(jù)簇的中心點(diǎn),直到該中心點(diǎn)趨于穩(wěn)定。

argminS=∑i=k∑x∈Six-μi2(1)

K-means步驟如下:①創(chuàng)建k個(gè)數(shù)據(jù)簇的中心點(diǎn);②計(jì)算所有數(shù)據(jù)點(diǎn)到k個(gè)中心點(diǎn)的距離,將其劃歸到距離自己最近的中心點(diǎn);③根據(jù)上次聚類結(jié)果,計(jì)算各個(gè)數(shù)據(jù)簇的算數(shù)平均值作為新的數(shù)據(jù)簇中心點(diǎn);④將所有數(shù)據(jù)在新中心點(diǎn)上重新聚類;⑤重復(fù)第4步,直到中心點(diǎn)趨于穩(wěn)定。

通過測試K-means算法在Hadoop Mapreduce、iMapReduce的運(yùn)行情況,統(tǒng)計(jì)出不同平臺運(yùn)行K-means的時(shí)間。

3.2實(shí)驗(yàn)結(jié)果

從表1中可以看出,iMapReduce運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)短于Hadoop MapReduce,大約是Hadoop MapReduce運(yùn)行時(shí)間的25%~39%,這是由于Hadoop不支持迭代計(jì)算,花了大量時(shí)間在數(shù)據(jù)通信上,從而大大降低了執(zhí)行速度。而iMapReduce通過避免傳輸靜態(tài)數(shù)據(jù)而減少了通信開銷,并在一次迭代內(nèi)允許異步執(zhí)行,因此對于迭代應(yīng)用有良好的性能表現(xiàn)。

4結(jié)語

迭代式計(jì)算是大數(shù)據(jù)領(lǐng)域中一種重要的計(jì)算方法,Twister和Haloop的模型抽象度不夠高,支持的計(jì)算有限,iMapReduce有效提升了大數(shù)據(jù)迭代計(jì)算的性能。目前MapReduce迭代式計(jì)算還處于發(fā)展階段,在以后的研究中,如何優(yōu)化提高分布式迭代計(jì)算的作業(yè)調(diào)度速度是亟待解決的問題。

參考文獻(xiàn)參考文獻(xiàn):

[1]ZHANG Y, GAO Q, GAO L, et al. iMapReduce: a distributed computing framework for iterative computation[J]. Journal of Grid Computing, 2012, 10(1):11121121.

[2]EKANAYAKE J, LI H, ZHANG B, et al. Twister: a runtime for iterative MapReduce[C].ACM International Symposium on High Performance Distributed Computing,2010:810818

[3]Bu Y, Howe B, Balazinska M, et al. Haloop: efficient iterative data processing on large clusters[J]. Proceedings of the Vldb Endowment, 2010, 3(12):285296.

[4]張巖峰.云環(huán)境下大數(shù)據(jù)迭代計(jì)算研究[J].沈陽:東北大學(xué),2012.

[5]易修文, 李天瑞, 張鈞波,等. 不同MapReduce運(yùn)行系統(tǒng)的性能測試與分析[J].計(jì)算機(jī)科學(xué), 2015,42(5):2427.

[6]董的博客. 傳統(tǒng)MapReduce框架介紹[EB/OL]. http://dongxicheng.org/mapreduce/traditionalmapreduceframework/.

[7]Kmeans算法的Hadoop實(shí)現(xiàn)[EB/OL].http://blog.csdn.net/chaaaa_wangyc/article/details/53426612?locationNum=9&fps=1.

責(zé)任編輯(責(zé)任編輯:黃健)

主站蜘蛛池模板: 黄色在线网| 亚洲欧洲一区二区三区| 午夜欧美在线| 又黄又爽视频好爽视频| 欧美成人免费| 亚洲第一区精品日韩在线播放| h网站在线播放| 精品无码国产一区二区三区AV| 国内精自视频品线一二区| 国产一级α片| 91亚洲国产视频| 日韩国产无码一区| 国产亚洲高清在线精品99| 亚洲IV视频免费在线光看| 亚洲综合久久一本伊一区| 国产精品无码制服丝袜| 久草视频中文| 亚洲精品桃花岛av在线| 国产特级毛片| 中文字幕无码av专区久久| 国产无遮挡猛进猛出免费软件| 日本黄色a视频| 国产午夜精品鲁丝片| 欧美在线导航| 韩日无码在线不卡| 欧美国产日韩另类| 国产91无毒不卡在线观看| 精品国产黑色丝袜高跟鞋 | 在线色综合| 无码国内精品人妻少妇蜜桃视频| 乱系列中文字幕在线视频| 欧美成人精品一级在线观看| 亚洲国产中文综合专区在| 久久综合九色综合97网| 国产在线视频二区| 大香伊人久久| 亚洲欧美激情小说另类| 久久久久人妻一区精品色奶水| 99久久精品美女高潮喷水| 欧美日韩免费观看| 又黄又湿又爽的视频| 欧美精品aⅴ在线视频| 国产91精品久久| 第九色区aⅴ天堂久久香| 国产精品刺激对白在线| 在线中文字幕网| 午夜啪啪福利| 欧美一级夜夜爽www| 久久青草精品一区二区三区| 少妇高潮惨叫久久久久久| 国产成人精品男人的天堂| 亚洲精品波多野结衣| 99久久亚洲精品影院| 久一在线视频| 国产精品性| 亚洲免费三区| 日韩成人在线一区二区| 国产精品视频猛进猛出| 国产亚洲一区二区三区在线| 日韩精品无码免费专网站| 朝桐光一区二区| 亚洲无码熟妇人妻AV在线| 手机精品视频在线观看免费| 深爱婷婷激情网| swag国产精品| 国产精品专区第一页在线观看| 精品无码国产一区二区三区AV| 国产亚洲精品97AA片在线播放| 久久黄色一级视频| 精品人妻无码区在线视频| 红杏AV在线无码| 91福利一区二区三区| 狠狠色综合久久狠狠色综合| 国产综合亚洲欧洲区精品无码| 91美女在线| 国产成人久视频免费 | 在线看国产精品| 婷婷成人综合| 在线播放91| 亚洲欧美日韩另类| 91尤物国产尤物福利在线| 一区二区午夜|