當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:隨著企業(yè)對于互聯(lián)網(wǎng)需求的不斷增加,以及分布式處理、并行處理和網(wǎng)格計(jì)算的發(fā)展,云計(jì)算也在計(jì)算機(jī)產(chǎn)業(yè)中 應(yīng)運(yùn)而生。伴隨著云計(jì)算在各大公司的紛紛上市,大數(shù)據(jù)這一詞眼也吸引著大眾的眼球。大數(shù)據(jù)成為熱門話題之后,對于大 數(shù)據(jù)的處理技術(shù)和方法也面臨著新的挑戰(zhàn)。為應(yīng)對大數(shù)據(jù)處理困境,介紹了Google公司提出的MapReduce編程模型的代表性處理方法。

引言

隨著互聯(lián)網(wǎng)的不斷發(fā)展,云計(jì)算也逐步成為各行各業(yè)的 熱門名詞了。云計(jì)算作為一項(xiàng)劃時(shí)代的技術(shù),擁有超級計(jì)算 能力和處理能力,用以應(yīng)對用戶對網(wǎng)絡(luò)資源需求和利用的日益 增大。數(shù)據(jù)需求日益增長和積累標(biāo)志著大數(shù)據(jù)時(shí)代已經(jīng)到來。 大數(shù)據(jù)的出現(xiàn)引起了各行各界專業(yè)人士的密切關(guān)注,因此大數(shù) 據(jù)的管理技術(shù)也應(yīng)運(yùn)而生。在學(xué)術(shù)界中,專家們紛紛發(fā)布論文 來定義大數(shù)據(jù),探討大數(shù)據(jù)的處理方法及指出其所面臨的挑 戰(zhàn)。作為大數(shù)據(jù)處理的領(lǐng)頭羊,Google公司于2004年提出的 MapReduce編程模型受到了大眾的廣泛關(guān)注。

1云計(jì)算技術(shù)簡介

云計(jì)算是當(dāng)今時(shí)代IT行業(yè)的熱點(diǎn)話題,對它的定義各 行各界的專業(yè)人士紛紛提出自己的看法。云計(jì)算既不是產(chǎn) 品也不是技術(shù),而是一種產(chǎn)生和獲取計(jì)算能力方式的統(tǒng)稱。 Wikipedia網(wǎng)站上給出的云計(jì)算(Cloud Computing)的定義是: 一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過這種方式,共享的軟硬件 資源和信息可以按需求提供給計(jì)算機(jī)和其他設(shè)備。

云計(jì)算的主要特點(diǎn)包含超大規(guī)模、虛擬化、高可靠 性、高可擴(kuò)展性和按需服務(wù)。主要形式有基礎(chǔ)設(shè)施即服務(wù) (Infrastructure as a Service,IaaS)即提供給用戶的遠(yuǎn)程登錄終 端界面(虛擬服務(wù)器)或者Web Service接口,平臺即服務(wù) (Platform as a Service,PaaS)即提供給用戶的數(shù)據(jù)庫連接串口 或者中間件部署界面,或者是應(yīng)用的部署管理界面,軟件即服 務(wù)(Software as a Service,SaaS)即提供給用戶訪問應(yīng)用的客戶 端或者Web界面。

2大數(shù)據(jù)

2.1大數(shù)據(jù)的定義

對于大數(shù)據(jù),專家們目前并沒有給出一個(gè)確切的定義。 Gartner分析師道格-萊尼(Doug Laney)認(rèn)為:大數(shù)據(jù)需滿 足三個(gè)特點(diǎn):規(guī)模性(Volume)、多樣性(Variety)和高速性 (Velocity),合稱3V。2012年Gartner修改了對大數(shù)據(jù)的定義: “大數(shù)據(jù)是大量、高速,及/或多變的信息資產(chǎn),他需要新型 的處理方式去促成更強(qiáng)的決策能力、洞察力與優(yōu)化處理。”還 有提出4 V定義的,即在3V基礎(chǔ)上增加一個(gè)新的特性一一真 實(shí)性(Veracity)。

2.2大數(shù)據(jù)的出現(xiàn)

互聯(lián)網(wǎng)日益發(fā)達(dá),人們需要的資源或數(shù)據(jù)量也越來越往 上攀升。數(shù)據(jù)庫作為管理數(shù)據(jù)的主要方式也滿足不了用戶們的 需求了。從開始數(shù)據(jù)庫的出現(xiàn)讓用戶管理數(shù)據(jù)的復(fù)雜度降低, 到Web 2.0時(shí)代的數(shù)據(jù)爆炸一一主要是新型的社交網(wǎng)絡(luò)微博、 微信等的快速發(fā)展和蘋果公司和安卓公司的智能手機(jī)、平板電 腦等新型移動設(shè)備的出現(xiàn),再到無處不在的傳感器設(shè)備的使 用,因?yàn)檫@些設(shè)備無時(shí)無刻不產(chǎn)生新的數(shù)據(jù),從而導(dǎo)致大數(shù) 據(jù)的產(chǎn)生。

2.3大數(shù)據(jù)的處理流程

與以往的傳統(tǒng)數(shù)據(jù)處理流程相比,大數(shù)據(jù)的基本處理流 程基本一樣,主要區(qū)別在于:大數(shù)據(jù)包含的信息量大,節(jié)點(diǎn)多 且屬于非結(jié)構(gòu)化的數(shù)據(jù),因此在每個(gè)處理環(huán)節(jié)中都需要采用 MapReduce,Dryad等方式進(jìn)行并行處理?;玖鞒倘鐖D1 所示。

大數(shù)據(jù)中的 3V 特性包含著多樣性,這意味著數(shù)據(jù)來源廣泛、種類多,也說明數(shù)據(jù)采集需要利用多個(gè)數(shù)據(jù)庫來接收數(shù)據(jù)。采集之后就是數(shù)據(jù)預(yù)處理,即需要對采集到的海量數(shù)據(jù)進(jìn)行分析,保證數(shù)據(jù)的質(zhì)量和可信度等。數(shù)據(jù)處理中的分析環(huán)節(jié)是大數(shù)據(jù)處理的核心部分,涉及到的數(shù)據(jù)量較大,系統(tǒng)資源利用率高,需要利用到分布式數(shù)據(jù)庫來對采集到的海量數(shù)據(jù)進(jìn)行進(jìn)一步分析和分類匯總,進(jìn)而滿足用戶的常見的分析需求。之后是數(shù)據(jù)挖掘,即主要是在現(xiàn)有采集到的數(shù)據(jù)用來進(jìn)行基于各種算法的技術(shù),從而起到預(yù)測的效果,實(shí)現(xiàn)一些高級別的數(shù)據(jù)分析需求。該過程的特點(diǎn)是數(shù)據(jù)挖掘的算法雖然復(fù)雜,計(jì)算量和數(shù)據(jù)量大,但算法的準(zhǔn)確率不再是大數(shù)據(jù)的最主要的指標(biāo)了。最后是結(jié)果展現(xiàn),換而言之,就是對數(shù)據(jù)分析后得出的結(jié)果展示給用戶參考,往往用戶也更關(guān)心分析后的結(jié)果。最常用的的方法就是利用可視化技術(shù),該技術(shù)也成功地被科學(xué)與工程計(jì)算領(lǐng)域采用?,F(xiàn)今常被采用的可視化技術(shù)有標(biāo)簽云 (Tag Cloud)、歷史流 (History Flow)、空間信息流 (Spatial Information Flow)。

3 MapReduce 模型

MapReduce 模型是一種云計(jì)算中的并行計(jì)算模型的主要研究對象。它通過基于云平臺中的大數(shù)據(jù)進(jìn)行挖掘,從而獲取網(wǎng)頁相關(guān)數(shù)據(jù)對其研究得出結(jié)果。完整的 MapReduce 執(zhí)行過程如圖 2 所示。

圖 2 中,MapReduce 模 型 有 2 個(gè) 函 數(shù) :Map 函 數(shù) 和Reduce 函數(shù)。MapReduce 模型首先獲取用戶需處理的數(shù)據(jù)進(jìn)行 split,然后分別傳送到 Map worker 進(jìn)行處理。Map worker從輸入中獲得 <key,value> 對集合,然后 Map 函數(shù)執(zhí)行該集合獲得中間結(jié)果并存入本地硬盤。Reduce worker 先從本地硬盤上獲取數(shù)據(jù),然后對 <key,value> 中的 key 值進(jìn)行排序。排序之后 Reduce 函數(shù)對這些排序好的對集合進(jìn)行處理并輸出最終結(jié)果。

4 MapReduce 的優(yōu)點(diǎn)

MapReduce 編程模型能夠在云計(jì)算的大數(shù)據(jù)處理一直處于領(lǐng)先地位,因?yàn)?MapReduce 實(shí)行的是分布式并行程序,通過編寫簡單高效的代碼來解決復(fù)雜的工作。從圖 2 可以看到,MapReduce 有著非常強(qiáng)大又簡單的接口 Map 函數(shù)和 Reduce函數(shù)。

MapReduce 模型有著高度抽象性,程序員不需要關(guān)心大數(shù)據(jù)的具體細(xì)節(jié),只需要實(shí)現(xiàn) Map 函數(shù)和 Reduce 函數(shù)。在圖 2 中,每一次 MapReduce 過程中,Map 任務(wù)之間是并行的,Reduce 任務(wù)之間也是并行的,但兩者之間是串行的,并且和具體的節(jié)點(diǎn)數(shù)目無關(guān),節(jié)點(diǎn)的增加或者減少都不會影響程序的執(zhí)行,即 MapReduce 模型具有可擴(kuò)展性、可靠性。同時(shí)在傳統(tǒng)并行編程模型下,包含計(jì)算任務(wù),數(shù)據(jù)同步和通信,對應(yīng)于MapReduce 模型中的 Map 函數(shù),Reduce 函數(shù)和 <key,value>。圖 3 所示是傳統(tǒng)并行程序與 MapReduce 關(guān)系的對應(yīng)圖。

Hadoop 是 Appach 用 java 實(shí)現(xiàn)的開源軟件平臺,可實(shí)現(xiàn)MapReduce 模型。并可對大數(shù)據(jù)進(jìn)行分布式計(jì)算,而且采用的編程語言種類繁多,如 Python,Java,C 等。下面是一個(gè)簡單的統(tǒng)計(jì)詞頻的 MapReduce 函數(shù),可以看出,MapReduce的核心代碼非常簡單且易懂 :

map(String key, String value):

for each word t in value:

EmitIntermediate(t, "1");

reduce(String key, Iterator values):

int result = 0;

for each s in values:

result += ParseInt(s);

Emit(AsString(result));

在該例中,Map 函數(shù)中的 key 是文件名,value 為文件的內(nèi)容,Map 函數(shù)逐個(gè)遍歷單詞,當(dāng)遇到一個(gè)單詞 t,就相對產(chǎn)生一個(gè)中間鍵值對<t,'T>,意味著單詞t的數(shù)目加1 ; 然后MapReduce模型將鍵相同的鍵值對傳給Reduce函數(shù), Reduce函數(shù)接收到v,值就是以“1”的一串,個(gè)數(shù)就是單詞 v的數(shù)目。最后這些單詞的數(shù)目會被寫到用戶定義的位置,存 儲在底層的分布式存儲系統(tǒng)(GFS)。

MapReduce模型的不足

MapReduce模型適用于并行計(jì)算,為大數(shù)據(jù)的處理而設(shè) 計(jì)開發(fā)的。但MapReduce模型也存在許多不足之處。

在大數(shù)據(jù)密集應(yīng)用的編程領(lǐng)域,傳統(tǒng)的MapReduce模型 中的Map的輸入源采用的是DFS,是相對的靜態(tài)數(shù)據(jù),并非 是一個(gè)最優(yōu)的實(shí)現(xiàn),而是使用了蠻力而非索引技術(shù),同時(shí)缺 乏了數(shù)據(jù)庫管理系統(tǒng)(DBMS)的大多數(shù)特性。比如DBMS中 的Schema的重要性,MapReduce模型缺少這樣的預(yù)防垃圾 數(shù)據(jù)機(jī)制。

從圖2中可以看出:MapReduce模型在處理大數(shù)據(jù)時(shí), 由Map函數(shù)產(chǎn)生大量的中間數(shù)據(jù),這些大量的中間數(shù)據(jù)同時(shí) 存在著數(shù)據(jù)不均衡的特性,比如key過于聚集或key值單一。 key過于聚集即不同key的個(gè)數(shù)雖然多,但經(jīng)過映射后,過于 聚集在一起,key值單一即不同key的個(gè)數(shù)少。

同時(shí),MapReduce模型也存在著性能問題。例如N個(gè) Map實(shí)例產(chǎn)生M個(gè)輸出文件,每個(gè)最后由不同的Reduce 實(shí)例處理,這些中間結(jié)果數(shù)據(jù)都會輸出到運(yùn)行Map函數(shù)機(jī) 制的本地硬盤。倘若N=1 000, M=500, Map階段產(chǎn)生了 N*M=500 000個(gè)中間數(shù)據(jù)或文件。而當(dāng)Reduce階段開始時(shí), 500個(gè)Reduce實(shí)例中,每個(gè)都需要讀入1 000個(gè)數(shù)據(jù)或者文件, 并用類似FTP協(xié)議把它要的輸入文件從Map實(shí)例運(yùn)行的節(jié)點(diǎn) 上pull取過來。當(dāng)同時(shí)有100的Reduce實(shí)例運(yùn)行,那么2個(gè) 或2個(gè)以上的Reduce實(shí)例同時(shí)訪問同一個(gè)Map節(jié)點(diǎn)來獲取輸 入文件,將導(dǎo)致了大量的硬盤查找,有效的硬盤運(yùn)轉(zhuǎn)速度至 少降低20%。

在上例中,N M的值都是普通數(shù)據(jù)(< 10 000), MapReduce模型針對的是大數(shù)據(jù),N, M的參數(shù)遠(yuǎn)遠(yuǎn)要大于上 面的數(shù)值,而中間結(jié)果數(shù)據(jù)過大的話,將導(dǎo)致Reduce階段的 數(shù)據(jù)傾斜。Reduce階段的數(shù)據(jù)傾斜可能帶來有的Reduce任 務(wù)處理的數(shù)據(jù)多,而有的Reduce任務(wù)處理的數(shù)據(jù)少,甚至沒有。 最嚴(yán)重的是,有的Reduce任務(wù)處理的數(shù)據(jù)超出了本地可用存 儲空間,導(dǎo)致整個(gè)MapReduce任務(wù)失敗。

MapReduce模型的改進(jìn)

MapReduce模型的不足說到底就是MapReduce模型的性能問題,Map/Reduce 的程序效率問題。Google 公司的Hadoop 系統(tǒng)采用了 Combiner 來提高 Map/Reduce 程序效率。Combiner 主要削減了 Map 階段的輸出以減少中間結(jié)果數(shù)據(jù),進(jìn)而為網(wǎng)絡(luò)帶寬和 Reduce 階段減負(fù)。數(shù)據(jù)格式轉(zhuǎn)換格式如下:

Map: (K1, V1) → list(K2,V2)

Combine: (K2, list(V2)) → list(K3, V3)

Reduce: (K3, list(V3)) → list(K4, V4)

插入Combiner 后,MapReduce 的數(shù)據(jù)流如圖 4 所示。

實(shí)際上,Combiner 實(shí)例在 MapReduce 過 程中是可選的。但是,一個(gè) Combiner 只能處理一個(gè)節(jié)點(diǎn)中的輸出,這和Reduce 階段有一些區(qū)別,Reduce 處理的是中間結(jié)果數(shù)據(jù)。

7 總 結(jié)

隨著云計(jì)算的快速發(fā)展,數(shù)據(jù)和信息量都呈爆炸型增長,大數(shù)據(jù)也就走入大眾的視線。大數(shù)據(jù)的到來方便了用戶,但大數(shù)據(jù)的處理方法也面臨著挑戰(zhàn)。本文介紹了云計(jì)算和大數(shù)據(jù)的基本概念,主要探討了 Google 公司的 MapReduce 模型的優(yōu)缺點(diǎn)?,F(xiàn)今國內(nèi)外對大數(shù)據(jù)的相關(guān)研究也取得了一定的成果,Microsoft 公司也針對云計(jì)算服務(wù)器中的大數(shù)據(jù)研發(fā)了Dryad 模型,但就 MapReduce 模型來說,在大數(shù)據(jù)的處理方法方面存在著極大的挑戰(zhàn)。

20211222_61c338596ce76__探討云計(jì)算大數(shù)據(jù)MapReduce處理方法

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉