陳銳忠,魏理豪,梁哲恒,鄒小武
(1.南方電網(wǎng)公司 信息化評測重點實驗室,廣東 廣州 510000;2.廣東電網(wǎng)有限責任公司 信息中心,廣東 廣州 510000;3.賽迪顧問股份有限公司 廣東 廣州 510500)
基于Hadoop的海量數(shù)據(jù)處理模型研究和應用
陳銳忠1,2,魏理豪1,2,梁哲恒1,2,鄒小武3
(1.南方電網(wǎng)公司 信息化評測重點實驗室,廣東 廣州510000;2.廣東電網(wǎng)有限責任公司 信息中心,廣東 廣州510000;3.賽迪顧問股份有限公司 廣東 廣州510500)
文中針對如何從海量數(shù)據(jù)中提取有用價值信息這一開發(fā)應用問題,通過分析現(xiàn)有計算和存儲技術,并且結合Hadoop的技術研究,設計了一種海量數(shù)據(jù)處理模型,該模型是以Hadoop技術為基礎的。文中先介紹了分布式系統(tǒng),然后描述了Hadoop架構,最后介紹了本設計的海量數(shù)據(jù)處理模型。該模型通過一系列設計可以有效的緩解了網(wǎng)絡壓力,同時它不需要程序員具有相應專業(yè)的經(jīng)驗就可以對超大系統(tǒng)進行整理并且獲得所需資源。該模型具有高效率、低成本以及易維護的特性。
Hadoop;海量數(shù)據(jù);分布式;數(shù)據(jù)預處理
當今社會中,Web是最大的信息系統(tǒng),它的價值主要來自于眾多用戶產(chǎn)生的數(shù)據(jù),那么,如何在具有多樣性、傳輸條件不確定性等特點的海量數(shù)據(jù)中提取出有價值的信息,這對程序員是一個很大的挑戰(zhàn)與難題。隨著時代進步以及網(wǎng)絡技術的發(fā)展,人們處理數(shù)據(jù)的能力也越來越強大。海量數(shù)據(jù)對計算機以及服務器都是一個巨大的考驗,在處理海量數(shù)據(jù)問題的過程中有很多困難,針對處理海量數(shù)據(jù)的問題,主要是將有用的數(shù)據(jù)從海量數(shù)據(jù)庫中提取出來,最后將有價值信息的數(shù)據(jù)導入數(shù)據(jù)庫中用于進一步的挖掘。因為Hadoop的模型可以允許程序員不具備開發(fā)經(jīng)驗就可以處理大量的系統(tǒng)資源,所以利用Hadoop的優(yōu)勢以及結合Hadoop的技術研究,文中提出了一種基于Hadoop的海量數(shù)據(jù)處理[1]。
文中所提到的分布式系統(tǒng)指的是分布式軟件系統(tǒng),它的目的是將復雜的大任務分為若干個小任務來處理,最后通過一系列的方法從這些任務中得到結果,并且將這些結果總結成為最后的結果。而且,在所提到的分布式系統(tǒng)處理任務的過程中,這些任務之間并不具有依賴性,相反,相互直接比較獨立,也就是說每一個任務的處理并不會受上一個任務處理結果的影響。所以,它的特點是不要求實時性,并且在過程中允許發(fā)生錯誤[2-3]。
2.1Hadoop核心組件
Hadoop核心組件主要包含兩部分,分別是Hadoop Map/ Reduce和Hadoop DFS。
Map/Reduce是一個將比較大的分布式計算轉變?yōu)橐粋€對數(shù)據(jù)集合進行操作的編程模型。該模型框架借助于計算機群,將用戶定義的任務分布到群眾的各點上的計算機中進行任務執(zhí)行。該模型計算包括兩個階段,分別是map階段和reduce階段。
Map階段,模型架構會將所得到的數(shù)據(jù)切分開,使其變?yōu)橐欢我欢蔚?,然后將所得到的各個片段按照一定的順序,一一對應的分配給相對應的map任務。每一個服務器都會對分配的數(shù)據(jù)進行計算并且將計算結果集合。Reduce階段,每個reduce任務會輸入之前整合的數(shù)據(jù),任意服務器都會通過一個reduce函數(shù)將其變?yōu)橐粋€輸出對。Map/Reduce框架會將節(jié)點上的reduce任務分發(fā)然后再把結果數(shù)據(jù)分配到每個reduce任務中處理。
Hadoop DFS是將海量數(shù)據(jù)存儲在一個大群的多臺計算機當中,它將每個文件以分塊的形式存儲,并且文件的所有分塊的大小和復制比例按照一定的規(guī)則配置。對于處理這些文件的時候必須要遵守一個嚴格要求,這個要求就是在任意時段只能有一名程序員在操作[4]。
2.2Hadoop分布式文件系統(tǒng)(HDFS)
Java是HDFS所采用的開發(fā)語言,因此,這意味著HDFS可以應用到多種類型的運行平臺當中。因此,為了簡化系統(tǒng),一個服務器只存在于一個集群當中,并且這個服務器里所存儲的數(shù)據(jù)就是HDFS中的全部數(shù)據(jù)。圖1為HDFS架構中各名稱與數(shù)據(jù)節(jié)點間的關系圖。
HDFS用于將海量數(shù)據(jù)存儲在一個集群中的計算機當中,并且HDFS當中的每個文件的排列順序都是非常合理的,至于數(shù)據(jù)塊的大小,每個數(shù)據(jù)塊都是一樣的,除了最后一個,這也就意味著在考慮出錯率以后,一個文件中的數(shù)據(jù)模塊都可以進行復制。HDFS中要求最嚴格的是只寫一次而且在任一時間內(nèi)只能有一個操作者。圖2是“塊報告”的結構示意圖[5-6]。
2.3Map/Reduce執(zhí)行流程
圖3為Map/Reduce的執(zhí)行流程[7]。
圖1 HDFS架構中名稱節(jié)點和數(shù)據(jù)節(jié)點之間的運行時關系
圖2 “塊報告"示意圖”
圖3 Map/Reduce執(zhí)行流程
下面對每個步驟進行簡要介紹:
1)fork:將海量文件分成大小不一的小塊數(shù)據(jù),大小由用戶給出的參數(shù)所決定。
2)指派規(guī)約任務:程序拷貝中只有一個用于管理的主程序,其余程序都是工作站程序,該程序具有管理機紙指派任務。
3)讀?。罕恢概傻墓ぷ髡咀x取數(shù)據(jù),經(jīng)過函數(shù)處理得到中間鍵值后,再存入內(nèi)存緩沖區(qū)。
4)本地寫入:內(nèi)存中的數(shù)據(jù)被劃分為R個區(qū)域,分別寫入本地磁盤當中,在本地磁盤當中的數(shù)據(jù)再被送到管理機處,管理機再將這些信息傳送到執(zhí)行任務的工作站中。
5)遠程讀?。簣?zhí)行任務的工作站收到數(shù)據(jù)位置后,通過遠程方式讀取本地緩沖數(shù)據(jù)。工作站讀完所有數(shù)據(jù)以后,將關鍵字對數(shù)據(jù)進行排列比較,將具有同類關鍵字的分為一類。
6)寫到輸出文件:規(guī)約工作站對中間數(shù)據(jù)進行排列,它給用戶的規(guī)約函數(shù)發(fā)送和中間值,規(guī)約函數(shù)再將結果添加到最后文件當中。
3.1設計思想
為了滿足實際需求,對于該海量數(shù)據(jù)處理模型的設計提出了3個設計步驟,分別是拆分、重構和融合。同時為了加快模型建立速度,設計思路也要遵循簡單的原則,同時也要保證系統(tǒng)的簡單、實用和易部署。
我們將系統(tǒng)過程中數(shù)據(jù)預處理部分拆分成4個部分,分別是數(shù)據(jù)模式間的切換、數(shù)據(jù)邏輯之間的計算、無用數(shù)據(jù)的刪除和將數(shù)據(jù)結果處理成為標準模式。
重構包括了3個方面:1)模型用Hadoop還是DGH;2)ETL要考慮的出錯控制、規(guī)劃空間、用戶格式化日志;3)簡化數(shù)據(jù)庫的計算負擔。
融合部分中要考慮SCP部分應使用原有的PERL ETL還是Hadoop,因此,我們將兩種計算模式進行了比較,比較結果如表1所示。
表1 PERLETL和Hadoop比較
3.2功能模塊
該海量數(shù)據(jù)處理模型主要由7個主要的功能模塊組成,下面對這7個部分進行簡單的介紹。
日志收集模塊主要任務是負責從前端機中收集最初的訪問日志,并且我們在該模塊中還增加了自動配置信息收集功能,方便了可修護設備的靈活性,也提高了設備的可延展性,對信息的查詢也很好的方便,這點對大企業(yè)比較重要。
格式清洗模塊的主要任務是對初始數(shù)據(jù)中的多個產(chǎn)品的模式進行統(tǒng)一,主要包括幾個方面,比如片段的定義、定位等,同時也刪除了一些沒用的信息,保證了信息的統(tǒng)一以及完整。
導入DFS模塊是啟動Hadoop計算規(guī)則的必要前提工作。最主要的特點是對于不熟悉分布式文件系統(tǒng)的工作人員而言,這個操作也是非常簡單的。
規(guī)則計算模塊是該海量數(shù)據(jù)處理模型的核心部分。該模塊對數(shù)據(jù)的規(guī)則和功能進行設計。用它來處理Web日志的計算非常高效,所以很容易實現(xiàn)相關統(tǒng)計事務。
導出DFS模塊,顧名思義,它的任務就是將DFS中產(chǎn)生的數(shù)據(jù)結果從中導出,并且將其存入相應數(shù)據(jù)塊中。
清理歷史數(shù)據(jù)模塊是清理系統(tǒng)處理數(shù)據(jù)過程中產(chǎn)生的垃圾,有利于下一次的操作。
監(jiān)控報警模塊在整個海量數(shù)據(jù)處理模型當中都存在,之所以存在是因為它的作用是一種監(jiān)督和防護,它可以對模型運行的過程中判斷是否有錯誤,如果找到了錯誤以后也可以及時修正[8]。
將海量數(shù)據(jù)處理模型所需軟硬件條件部署好以后,我們分4組測試并且比較相互特性。
表2 4組測試數(shù)據(jù)
新舊系統(tǒng)測試比較結果數(shù)據(jù)表如表3所示。
表3 新舊系統(tǒng)測試比較結果數(shù)據(jù)表
與此同時,為了判斷該海量數(shù)據(jù)處理模型是否對小數(shù)據(jù)也具有相同的優(yōu)勢,所以我們針對180M大小的日志數(shù)據(jù)文件將其在上述條件下進行仿真驗證,所得出結果卻出人意料,得出的結果于上述結果截然相反。
所以,從以上分析中得出的結論是:基于Hadoop技術的海量數(shù)據(jù)處理模型在對海量數(shù)據(jù)進行處理過程中所展現(xiàn)的性能相比于原有處理模式而言,所展示的表現(xiàn)相對好,但是,這種良好的表現(xiàn)有很多限制因素,比如數(shù)據(jù)的個數(shù)、文件的大小、模型處理過程中的復雜程度以及所采用的服務器的個數(shù)。這幾種條件都不符合時,Hadoop的優(yōu)勢就顯示不出來了。
針對分布式系統(tǒng)的關鍵技術,文中進行了系統(tǒng)的研究。文中通過分析現(xiàn)有計算和存儲技術,并且結合Hadoop的技術研究,設計了一種海量數(shù)據(jù)處理模型,該模型是以Hadoop技術為基礎的。文中先介紹了分布式系統(tǒng),然后描述了Hadoop架構,最后介紹了本設計的海量數(shù)據(jù)處理模型。該模型通過一系列設計可以有效的緩解了網(wǎng)絡壓力,同時它不需要程序員具有相應專業(yè)的經(jīng)驗就可以對超大系統(tǒng)進行整理并且獲得所需資源。該模型具有高效率、低成本以及易維護的特性。最后通過測試以及與其他計算模型相比較,分析結果表明該海量數(shù)據(jù)處理模型在處理大數(shù)據(jù)的條件下所表現(xiàn)的性能是非常好的。
[1]朱珠.基于Hadoop的海量數(shù)據(jù)處理模型研究和應用[D].北京:北京郵電大學,2008.
[2]Cooley R,Mobasher B,Srivastava J.Data Preparation for Mining World Wide Web Browsing Patterns[J].Knowledge& Information Systems,1999,1(1):5-32.
[3]肖桐.應用于海量數(shù)據(jù)處理分析的云計算平臺搭建研究[D].天津:天津科技大學,2011.
[4]魏強,孔廣黔,吳云.基于Hadoop的海量醫(yī)療小文件處理系統(tǒng)[J].計算機與數(shù)字工程,2015(4):733-737.
[5]Jeffrey Dean,Sanjay Ghemawat.Map/Reduce:Simplified Data Processing on Large Clusters.Communications of the ACM,2008,51(1):107-113.
[6]張勇勇.基于Hadoop自動文本分類的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2012.
[7]辛大欣,屈偉.基于Hadoop的云計算算法研究[J].電子設計工程,2013(3):33-35.
Research and application of mass data processing model based on Hadoop
CHEN Rui-zhong1,2,WEI Li-hao1,2,LIANG Zhe-heng1,2,ZOU Xiao-wu3
(1.CSG Key Laboratory of Software Testing,Guangzhou 510000,China;2.Guangdong Power Grid Information Center,Guangzhou 510000,China;3.CCID Consulting Co.,Ltd,Guangzhou 510500,China)
In this paper,we design a data processing model based on Hadoop technology,which is based on the analysis of the existing computing and storage technology,and combining with the technology of Hadoop.This paper first introduces the distributed system,then describes the Hadoop architecture,and finally describes the design of mass data processing model. Through a series of design,the model can effectively alleviate the pressure of the network,while it does not need to have the corresponding professional experience with the corresponding professional experience can be a large system to collate and get the required resources.The model has the characteristics of high efficiency,low cost and easy maintenance.
hadoop;massive data;distributed;data pre-process
TM933.4
A
1674-6236(2016)14-0101-03
2015-07-27稿件編號:201507171
陳銳忠(1985—),男,廣東揭陽人,博士,工程師。研究方向:電力信息化、計算機體系結構。