国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Hadoop與MapReduce應(yīng)用下的大數(shù)據(jù)處理系統(tǒng)設(shè)計

2021-10-28 13:27:28李紅麗
關(guān)鍵詞:鍵值節(jié)點作業(yè)

◆李紅麗

Hadoop與MapReduce應(yīng)用下的大數(shù)據(jù)處理系統(tǒng)設(shè)計

◆李紅麗

(陽泉師范高等??茖W(xué)校 山西 045200)

移動互聯(lián)網(wǎng)、云計算與物聯(lián)網(wǎng)等信息技術(shù)應(yīng)用日益廣泛的大范圍增加了數(shù)據(jù)的產(chǎn)生量,使得整個社會正加速步入“大數(shù)據(jù)”時代。采取何種技術(shù)進(jìn)行大數(shù)據(jù)處理系統(tǒng)的高效構(gòu)建,對各種類型的數(shù)據(jù)源進(jìn)行集成,讓用戶無障礙地訪問這些數(shù)據(jù),進(jìn)而完成對大數(shù)據(jù)價值的充分挖掘,成為業(yè)界與學(xué)者共同關(guān)注的問題。

Hadoop;MapReduce;ETL;大數(shù)據(jù)處理系統(tǒng)

近年來,諸多大數(shù)據(jù)處理技術(shù)與框架吸引了人們的高度關(guān)注,其中,以Hadoop開源計算平臺得到的關(guān)注與應(yīng)用最廣。它是一種具有分布式特點的系統(tǒng)架構(gòu),基于自身所表現(xiàn)出來的數(shù)據(jù)提取、轉(zhuǎn)換與清洗以及加載(ETL)強(qiáng)大優(yōu)勢而在大數(shù)據(jù)處理中發(fā)揮重要作用。本文進(jìn)行一種以Hadoop和MapReduce為基礎(chǔ)的大數(shù)據(jù)處理系統(tǒng)的構(gòu)建,該系統(tǒng)可以整合數(shù)據(jù)處理的全部流程,涉及從分布異構(gòu)數(shù)據(jù)源處進(jìn)行各種相關(guān)數(shù)據(jù)的收集、對信息進(jìn)行清洗以將冗余或是無用信息剔除、重構(gòu)有用的各項數(shù)據(jù)、對數(shù)據(jù)進(jìn)行向數(shù)據(jù)倉庫等的加載等一系列任務(wù),以期為今后大數(shù)據(jù)處理工作更加順利與有效的開展提供一種可供參考的計算架構(gòu)。

1 Hadoop平臺與MapReduce技術(shù)

分析Hadoop平臺的總體構(gòu)成,主要對HDFS、MapReduce以及Hive等重要組件予以涉及。

1.1 HDFS

這是一種分布式文件系統(tǒng),在一個集群網(wǎng)絡(luò)中,通常會有很多臺計算機(jī),而每臺計算機(jī)內(nèi)又會存儲大量不同的數(shù)據(jù),借助該系統(tǒng),可以完成對這些數(shù)據(jù)的管理任務(wù)。HDFS可在普通商用服務(wù)器節(jié)點上部署,容錯性能強(qiáng),可靠性高。為了在極短的時間內(nèi)實現(xiàn)對數(shù)據(jù)的快速訪問,HDFS對流式數(shù)據(jù)訪問的設(shè)計理念及其思路予以遵循,對大數(shù)據(jù)的處理執(zhí)行的為一次寫入與多次讀取模式。

1.2 MapReduce

這是一種數(shù)據(jù)模型(主要框架如圖1所示),具有對數(shù)據(jù)進(jìn)行并行化處理的功能,在多個計算節(jié)點上,該數(shù)據(jù)模型可以執(zhí)行對大規(guī)模計算分析任務(wù)的分配操作,能夠在較大的程度上為統(tǒng)計分析任務(wù)效率的提升提供可靠保證。在完成數(shù)據(jù)輸入之后,系統(tǒng)會對所輸入的各項數(shù)據(jù)執(zhí)行分片處理操作,對于各輸入分片,它們都會進(jìn)行一個Map任務(wù)的單獨啟動,并在此基礎(chǔ)之上生成并得到一些鍵值對,并在本地硬盤中執(zhí)行對這些鍵值對的存儲任務(wù)。Map處理之后所得結(jié)果,會在網(wǎng)絡(luò)傳輸?shù)闹С肿饔孟掠蓪educe任務(wù)予以運行的相應(yīng)節(jié)點接收,在此過程中,Reduce函數(shù)的功能在于對它們進(jìn)行合并處理,并以此操作為基礎(chǔ)將得到的最終處理結(jié)果在HDFS中存儲下來。

圖1 MapReduce計算模型

1.3 Hive

構(gòu)建于Hadoop上的數(shù)據(jù)倉庫框架,可將HiveQL查詢有效地轉(zhuǎn)換為MapReduce任務(wù),減小HiveQL程序向Hadoop平臺移植難度。

2 系統(tǒng)設(shè)計

系統(tǒng)主要包括4個層次,圖1所示為本文設(shè)計的系統(tǒng)整體框架。

(1)數(shù)據(jù)采集層。主要利用各類采集設(shè)備,在設(shè)備接口的支持下獲取各種類型的數(shù)據(jù),在這些數(shù)據(jù)中,包括結(jié)構(gòu)化、半結(jié)構(gòu)化以及非結(jié)構(gòu)化多種類型的數(shù)據(jù),同時,還有可能涉及錯誤、冗余或者是用處不大的數(shù)據(jù),因此需要先對這些數(shù)據(jù)執(zhí)行數(shù)據(jù)的清洗任務(wù),為干凈可用數(shù)據(jù)的獲取提供便利,同時,保障數(shù)據(jù)安全存取。

(2)數(shù)據(jù)存取與計算層。涉及大數(shù)據(jù)倉庫、Hadoop平臺與ETL計算框架。數(shù)據(jù)倉庫與Hadoop之間具有互補(bǔ)的關(guān)系,前者中的數(shù)據(jù)能夠在后者中轉(zhuǎn)存,這可實現(xiàn)對用戶在多種不同場景下業(yè)務(wù)需求的有效滿足。ETL計算框架同Hadoop結(jié)合可以執(zhí)行對數(shù)據(jù)的一系列處理,為后期的數(shù)據(jù)查詢、分析以及挖掘提供強(qiáng)有力的平臺支持。

(3)數(shù)據(jù)服務(wù)層。以ETL計算框架與Hadoop平臺為基礎(chǔ),提供對數(shù)據(jù)的管理、分析以及挖掘服務(wù)。為了達(dá)到數(shù)據(jù)的共享目的,該層同時提供統(tǒng)一接口,供平臺及其他相關(guān)應(yīng)用使用。

(4)數(shù)據(jù)應(yīng)用層。基于數(shù)據(jù)服務(wù)層接口的支持,執(zhí)行預(yù)警預(yù)測、知識發(fā)現(xiàn)以及決策支持等多種大數(shù)據(jù)應(yīng)用。

圖1 大數(shù)據(jù)處理系統(tǒng)總體架構(gòu)

3 系統(tǒng)分布式ETL框架(圖2)

第一,考慮到Hadoop HDFS可以分布式存取文件,對其這一功能加以應(yīng)用,從邏輯層面上整合之前那些物理上相互隔離的各類數(shù)據(jù);第二,遵循事先制定好的業(yè)務(wù)規(guī)則,在Hive組件的支持下,執(zhí)行對HiveQl腳本的編寫任務(wù),同時,有效地發(fā)揮Hadoop MapReduce所具有的對數(shù)據(jù)進(jìn)行處理的強(qiáng)大功能,進(jìn)一步執(zhí)行對HDFS中相關(guān)數(shù)據(jù)的轉(zhuǎn)換與處理操作,最終獲取所需要的Hive數(shù)據(jù)表;第三,為了盡可能地將時間的消耗降到最低程度,發(fā)揮Sqoop工具的作用,對Hive表進(jìn)行批量加載,并將其存儲至關(guān)系型數(shù)據(jù)庫中。

圖2 分布式ETL框架圖

在數(shù)據(jù)抽取模塊中,又可以進(jìn)一步分為兩個子模塊,分別為數(shù)據(jù)源與數(shù)據(jù)過濾器。而在這兩個子模塊中,后者的功能在于執(zhí)行對數(shù)據(jù)的初步清洗與過濾任務(wù)。

數(shù)據(jù)轉(zhuǎn)換模塊主要由數(shù)據(jù)轉(zhuǎn)換器(Hive)與數(shù)據(jù)轉(zhuǎn)換引擎(Hadoop)2個子模塊共同構(gòu)成,其中,前者的功能表現(xiàn)為對轉(zhuǎn)換規(guī)則進(jìn)行制定,并執(zhí)行對規(guī)則的輸入任務(wù);后者主要運行具體轉(zhuǎn)換規(guī)則并得到最終的結(jié)果,是整個ETL部件的核心,內(nèi)部工作流程在圖2中已給出。

在關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)加載模塊存在的意義表現(xiàn)為可執(zhí)行對最終結(jié)果表的批量加載任務(wù),而該項操作會進(jìn)一步在Sqoop的支持下來完成。

4 基于MapReduce計算模型的HDFS數(shù)據(jù)轉(zhuǎn)換實現(xiàn)

在對數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換以及執(zhí)行對程序的加載任務(wù)等各個環(huán)節(jié),ETL程序均會同Hadoop MapReduce庫建立起相應(yīng)的鏈接關(guān)系,此過程會調(diào)用Map以及Reduce這兩個最為基本的函數(shù),以此轉(zhuǎn)換HDFS數(shù)據(jù),得到Hive數(shù)據(jù)表。圖3所示為其順序執(zhí)行流程圖。

圖3 基于MapReduce的HDFS數(shù)據(jù)轉(zhuǎn)換流程圖

(1)MapReduce庫先對HDFS數(shù)據(jù)進(jìn)行M份劃分(M由用戶定義),每1份為16~64M,之后利用分叉拷貝在集群內(nèi)的其他機(jī)器上進(jìn)行用戶進(jìn)程的拷貝。

(2)在ETL程序副本分配的機(jī)器中,有一個是Master,負(fù)責(zé)調(diào)度,其他的都是Worker,數(shù)量亦由用戶制定。Master為空閑的Worker分配Map作業(yè)或Reduce作業(yè)。

(3)對于Worker而言,如果其被分配的是Map作業(yè),則需執(zhí)行對所對應(yīng)的分片中輸入數(shù)據(jù)的讀取任務(wù),Map作業(yè)數(shù)量并不是固定的,M會對其產(chǎn)生決定性影響,也就是說,Map作業(yè)同分片之間存在著一一對應(yīng)的關(guān)系;在所輸入的所有數(shù)據(jù)中,Map作業(yè)會執(zhí)行相應(yīng)的鍵值對抽取操作,在此基礎(chǔ)上,會通過參數(shù)的形式將所抽取到的鍵值對傳遞給Map函數(shù),而接下來,Map函數(shù)會基于接收到的鍵值對而產(chǎn)生對應(yīng)的中間鍵值對,這些中間鍵值對會在內(nèi)存中被緩存下來。

(4)當(dāng)有一定數(shù)量的中間鍵值對被緩存下來之后,它們會被寫入到本地磁盤之中,而磁盤又會進(jìn)一步將它們劃分為R個區(qū),用戶自行定義R的大小,后期,每個區(qū)均會與一個Reduce作業(yè)相對應(yīng);另外,寫入本地磁盤的中間鍵值對位置會經(jīng)由Master向Reduce Worker轉(zhuǎn)發(fā)。

(5)Mater會對Worker被分配到的作業(yè)性質(zhì)進(jìn)行判斷,如果是Reduce作業(yè),這時,Worker會向Worker下達(dá)相應(yīng)的通知,讓其知曉自身所負(fù)責(zé)的具體區(qū)域所處的位置,當(dāng)Reduce Worker完成自身的初步任務(wù),亦即將由自己負(fù)責(zé)的所有中間鍵值對讀取完畢以后,會進(jìn)一步地對它們進(jìn)行排序處理,將有著相同鍵的鍵值對集聚起來。

(6)Reduce Worker遍歷按順序排列之后的中間鍵值對,針對每一個唯一的鍵,均向Reduce函數(shù)執(zhí)行鍵及其關(guān)聯(lián)值的傳遞任務(wù),在此過程中,Reduce函數(shù)會有相應(yīng)的輸出產(chǎn)生,而這些輸出會添加到該分區(qū)的輸出文件中。

(7)當(dāng)全部的Map作業(yè)以及Reduce作業(yè)均被完成之后,Master會進(jìn)一步執(zhí)行對ETL程序的喚醒操作,在此過程中,MapReduce函數(shù)又會調(diào)用向ETL程序返回的相關(guān)代碼。

基于上述所有操作的完成,MapReduce輸出會放于R個分區(qū)的輸出文件中,用戶可將它們作為輸入交由另一個MapReduce程序,最終得到Hive數(shù)據(jù)表。

5 應(yīng)用測試與性能比較

系統(tǒng)設(shè)計完成之后,需要對其可應(yīng)用性進(jìn)行測試,以確定系統(tǒng)是否具有價值,對此,本文圍繞系統(tǒng)的具體應(yīng)用及其在應(yīng)用過程中表現(xiàn)出來的相關(guān)性能展開具體的測試工作。

5.1 應(yīng)用測試

在測試過程中,將加速比(單機(jī)完成某一應(yīng)用所耗費的時間同多機(jī)并行完成某一應(yīng)用所耗費的時間的比值)作為指標(biāo)分析系統(tǒng)可應(yīng)用性,也就是測試系統(tǒng)在對各種數(shù)據(jù)進(jìn)行處理的過程中表現(xiàn)出來的實際加速比,對此實際加速比同理想的加速比進(jìn)行比較分析。具體地,將在實驗室中采集到的訓(xùn)練數(shù)據(jù)作為實驗數(shù)據(jù),根據(jù)測試結(jié)果進(jìn)行加速比變化曲線的繪制,圖4(a)為隨數(shù)據(jù)變化的加速比變化曲線,(b)為隨計算節(jié)點變化的加速比變化曲線。

圖4 加速比變化曲線圖

根據(jù)圖4(a),在數(shù)據(jù)集不斷變大的過程中,加速比呈現(xiàn)出逐漸上升之勢,究其原因,在于系統(tǒng)設(shè)計最初時的目的在于對龐大而又復(fù)雜的數(shù)據(jù)進(jìn)行處理,這一處理通常情況下都以一次性的處理為主。以Hadoop與MapReduce為基礎(chǔ)的大數(shù)據(jù)處理系統(tǒng)在運行過程中無須執(zhí)行對數(shù)據(jù)的預(yù)處理操作,同時,也不必將它們寫入數(shù)據(jù)庫,系統(tǒng)直接在平面文件的基礎(chǔ)之上將相應(yīng)的分析工作展開,最小化分析延遲,因此,數(shù)據(jù)集的增大可在一定程度上提高其處理效率。

根據(jù)圖4(b),在計算節(jié)點數(shù)量不斷增加的過程中,加速比的變化趨勢為先上升,后下降,其原因在于網(wǎng)絡(luò)通信過程中所需支付的費用會在計算節(jié)點數(shù)量不斷增加的過程中而逐漸增加,由于Hadoop MapReduce對以掃描為基礎(chǔ)的數(shù)據(jù)處理模式以及對中間結(jié)果不斷物化的執(zhí)行策略予以采用,因此這會在較大程度上提高I/O代價,同時,增加網(wǎng)絡(luò)傳輸?shù)娜蝿?wù)量,在數(shù)據(jù)集并非特別大的前提條件下,節(jié)點數(shù)量的增加會對處理效率產(chǎn)生相應(yīng)的影響。

5.2 基于不同平臺的系統(tǒng)性能比較(表1)

對于大數(shù)據(jù)處理系統(tǒng),以往學(xué)者已經(jīng)作了相應(yīng)的研究,設(shè)計出基于SOA平臺的大數(shù)據(jù)處理系統(tǒng)以及基于多Agent的大數(shù)據(jù)系統(tǒng)等,為確定本文所設(shè)計的基于Hadoop MapReduce的大數(shù)據(jù)處理系統(tǒng)的優(yōu)越性,本文從系統(tǒng)交互性、靈活性、擴(kuò)展性、穩(wěn)定性以及有效性5個方面對本文系統(tǒng)以及基于SOA平臺的系統(tǒng)和基于多Agent的系統(tǒng)進(jìn)行對比分析,得到如表1所示對比分析結(jié)果。

表1 三種平臺下的系統(tǒng)性能比較

注:“√”表明系統(tǒng)可滿足此項性能要求,“×”表示不可滿足。

根據(jù)表1,基于SOA方式的系統(tǒng)設(shè)計以對緊耦合問題的解決為目的,可提高ETL之間的交互性,但未較好地解決擴(kuò)展性與有效性問題,故對于大數(shù)據(jù)來說,其效率相對不高;采用多Agent技術(shù)的系統(tǒng)以對Agent之間負(fù)載均衡問題的解決為目的,但無法確保各Agent之間的穩(wěn)定性,當(dāng)其中任意1個Agent出現(xiàn)故障之時,整個系統(tǒng)均會面臨癱瘓的風(fēng)險,且無法有效地對大數(shù)據(jù)進(jìn)行處理;Hadoop平臺對數(shù)據(jù)復(fù)制的方式予以采用,可提升節(jié)點之間訪問數(shù)據(jù)的效率,對數(shù)據(jù)丟失的可能性予以降低,因此基于Hadoop平臺的大數(shù)據(jù)處理系統(tǒng)具有很好的穩(wěn)定性、擴(kuò)展性與有效性,適用性很高。

6 結(jié)語

文章進(jìn)行了一種基于Hadoop與MapReduce的大數(shù)據(jù)處理系統(tǒng)的設(shè)計,給出其框架設(shè)計方案,并對各模塊的功能進(jìn)行了介紹,同時,針對其最為核心的部分,分析了基于MapReduce計算模型的HDFS數(shù)據(jù)轉(zhuǎn)換實現(xiàn)。系統(tǒng)可對分布于不同主機(jī)上的數(shù)據(jù)執(zhí)行簡單且高效的數(shù)據(jù)抽取、轉(zhuǎn)換與加載操作,實驗顯示,系統(tǒng)可靠性、可擴(kuò)展性、負(fù)載平衡性能良好,執(zhí)行效率高,且在對海量數(shù)據(jù)的處理中表現(xiàn)出了優(yōu)于采用SOA方式與采用多Agent方式的系統(tǒng)性能。

[1]楊杉,蘇飛,程新洲,等.面向運營商大數(shù)據(jù)的分布式ETL研究與設(shè)計[J].郵電設(shè)計技術(shù),2016(8):47-52.

[2]崔蔚,周力,吳凱峰,等.基于Hadoop平臺的并行線損分析系統(tǒng)研究與實現(xiàn)[J].電力信息與通信技術(shù),2014,12(2):60-63.

[3]王艷,蔣義然,劉永立.基于Hadoop的大數(shù)據(jù)處理技術(shù)及發(fā)展[J].信息記錄材料,2020,21(11):146-147.

猜你喜歡
鍵值節(jié)點作業(yè)
CM節(jié)點控制在船舶上的應(yīng)用
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的門窗節(jié)點圖快速構(gòu)建
非請勿進(jìn) 為注冊表的重要鍵值上把“鎖”
快來寫作業(yè)
一鍵直達(dá) Windows 10注冊表編輯高招
電腦愛好者(2017年9期)2017-06-01 21:38:08
作業(yè)
故事大王(2016年7期)2016-09-22 17:30:08
抓住人才培養(yǎng)的關(guān)鍵節(jié)點
我想要自由
注冊表值被刪除導(dǎo)致文件夾選項成空白
泰安市| 龙川县| 德阳市| 白沙| 岑巩县| 荆门市| 永济市| 文山县| 景德镇市| 山丹县| 平顶山市| 循化| 封丘县| 聂拉木县| 西乌珠穆沁旗| 青海省| 仪征市| 北安市| 利川市| 万州区| 棋牌| 库车县| 油尖旺区| 兰坪| 云浮市| 宁晋县| 绥阳县| 苏州市| 都江堰市| 从化市| 视频| 平果县| 绥中县| 信宜市| 彰化县| 孟州市| 凯里市| 谢通门县| 横山县| 渝北区| 汕头市|