信息爆炸式增長(zhǎng),企業(yè)迫切需要對(duì)海量數(shù)據(jù)進(jìn)行及時(shí)、準(zhǔn)確地處理,以獲取潛在的、有價(jià)值的信息,云計(jì)算集網(wǎng)格計(jì)算、分布計(jì)算、并行計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化、負(fù)載均衡等技術(shù)于一體,具有海量的存儲(chǔ)能力和可彈性變化的計(jì)算能力,成為解決該問題的有效方式,自Google提出GAE(Google App Engine)后,各種云計(jì)算產(chǎn)品紛紛出現(xiàn):Apache的FIadoop,Amazon的AWS(Amazon Web Services),微軟的Windows Azure,IBM的Blue Cloud,SalesForce.com的SFDC等,遺憾的是以上公司并沒有將研發(fā)的云計(jì)算架構(gòu)大規(guī)模應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域,而市面上各種通用數(shù)據(jù)挖掘工具,如SAS的EntERPrise Miner,IBM的SPSS Modeler等,價(jià)格昂貴,對(duì)海量數(shù)據(jù)分析的效果欠佳。
基于云計(jì)算平臺(tái)研發(fā)的數(shù)據(jù)挖掘產(chǎn)品,比較有名的包括:中國(guó)科學(xué)院計(jì)算所研發(fā)的PDMiner(Parallel Distributed Miner),提供基于Hadoop的數(shù)據(jù)處理能力,但數(shù)據(jù)預(yù)處理能力有限,部分挖掘算法的并行策略還需改善;Apache軟件基金會(huì)的開源Mahout,提供分類、聚類、頻繁模式挖掘、回歸、降維等算法,但缺少數(shù)據(jù)準(zhǔn)備和展示過程,用戶需要以編程方式調(diào)用算法;Source forge的開源Augustus,支持預(yù)測(cè)模型標(biāo)記語言,可在Amazon的云計(jì)算平臺(tái)上運(yùn)行,雖提供了強(qiáng)大的建模能力和穩(wěn)定的平臺(tái)支撐,但對(duì)數(shù)據(jù)預(yù)處理工作關(guān)注太少:德國(guó)Fraunhofer在開源數(shù)據(jù)挖掘軟件WEKA和開源云平臺(tái)Hadoop之上實(shí)現(xiàn)了圖形化的數(shù)據(jù)挖掘工具包,雖解決了WEKA單機(jī)運(yùn)行的缺陷,但WEKA無法為用戶提供完整的業(yè)務(wù)流程;Radoop以Hadoop,Hive,Mahout為基礎(chǔ),對(duì)RapidMiner進(jìn)行了擴(kuò)展,并以拖拽方式配置海量數(shù)據(jù)分析流程,但它尚處起步階段,且依賴于底層Mahout提供的分析算法,只能完成部分常用的數(shù)據(jù)分析工作。
而學(xué)術(shù)界從2011年起,對(duì)于將MapReduce這一云計(jì)算框架應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域的研究和討論逐年增多,例如,Robson使用MapReduce實(shí)現(xiàn)多維度大數(shù)據(jù)的聚類;Alina實(shí)現(xiàn)了快速聚類算法;Herodotos通過他們的“profing and what-if engine”提升了MapReduce的效率,種種現(xiàn)象表明,MapReduce適合于開發(fā)并行數(shù)據(jù)挖掘算法。
總之,目前的并行數(shù)據(jù)挖掘工具在功能、處理能力、用戶體驗(yàn)等方面存在一些不足,更明顯的是它們著眼點(diǎn)或者是科研,或者是簡(jiǎn)單應(yīng)用,并沒有以大規(guī)模企業(yè)應(yīng)用為背景,適應(yīng)大型企業(yè)商務(wù)智能應(yīng)用需求。以電信行業(yè)為例,為了正確分析用戶數(shù)據(jù),獲取有價(jià)值的知識(shí),更好地提供服務(wù),發(fā)現(xiàn)商機(jī),制定營(yíng)銷、資費(fèi)等策略,不少電信運(yùn)營(yíng)商自主開發(fā)基于云計(jì)算的新型數(shù)據(jù)分析工具。例如,國(guó)外AT&T推出了Synaptic,Verizon推出了CaaS;國(guó)內(nèi),中國(guó)移動(dòng)提出“大云計(jì)劃”,電信提出了“星云計(jì)劃”,聯(lián)通開發(fā)了“互聯(lián)云”。
本文介紹一款基于Hadoop的并行數(shù)據(jù)分析系統(tǒng)PDM(Integrated Parallel Data Mining),它以全球最大電信運(yùn)營(yíng)企業(yè)——中國(guó)移動(dòng)的商務(wù)智能應(yīng)用需求為背景,旨在針對(duì)海量數(shù)據(jù)提供高效、準(zhǔn)確、便捷的數(shù)據(jù)分析服務(wù)。本系統(tǒng)具有強(qiáng)大的數(shù)據(jù)預(yù)處理能力,優(yōu)化了傳統(tǒng)算法的并行策略,既適合簡(jiǎn)單的數(shù)據(jù)分析,也支持復(fù)雜的業(yè)務(wù)邏輯。更重要的是,系統(tǒng)將數(shù)理統(tǒng)計(jì)功能、文本分析、圖挖掘能力與傳統(tǒng)數(shù)據(jù)挖掘工具相結(jié)合,豐富了數(shù)據(jù)處理的方法和能力,本系統(tǒng)還針對(duì)電信數(shù)據(jù),開發(fā)了一系列典型應(yīng)用,并在中國(guó)移動(dòng)多個(gè)省公司試點(diǎn)運(yùn)行。
本文結(jié)構(gòu)如下:第1章系統(tǒng)整體架構(gòu),說明各層的功能和特色;第2章并行多元回歸算法和并行多源最短路徑算法的設(shè)計(jì)與實(shí)現(xiàn);第3章基于本系統(tǒng)開發(fā)的典型應(yīng)用;第4章系統(tǒng)性能測(cè)試結(jié)果;第5章總結(jié)全文,說明后續(xù)研究工作。
1 系統(tǒng)架構(gòu)
如圖1所示,本系統(tǒng)包含:提供云存儲(chǔ)和計(jì)算環(huán)境的云平臺(tái)層,提供數(shù)據(jù)分析核心能力的算法層,提供業(yè)務(wù)支撐的邏輯層和提供用戶交互功能的界面層。
圖1 系統(tǒng)架構(gòu)
1.1 云平臺(tái)層
提供計(jì)算和存儲(chǔ)能力,主要由一系列第三方開源軟件組成。
云存儲(chǔ)框架:由分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)、分布式數(shù)據(jù)庫HBase(Hadoop Database)和分布式數(shù)據(jù)倉(cāng)庫工具Hive構(gòu)成,實(shí)現(xiàn)數(shù)據(jù)分布式存取。
云計(jì)算框架:由Hadoop的MapReduce模型,提供并行計(jì)算、數(shù)據(jù)發(fā)送和錯(cuò)誤控制等功能。MapReduce使用極為簡(jiǎn)單,以64MB為單位自動(dòng)將文件劃分成數(shù)個(gè)片段,并送入各計(jì)算節(jié)點(diǎn),執(zhí)行用戶定義的Map(映射)過程,輸出key/value的鍵值對(duì);經(jīng)過一次混洗和排序,把具有相同key值的鍵值對(duì),傳送到同一個(gè)Reduce(歸納)過程;最后根據(jù)用戶定義的Reduce,完成處理,將結(jié)果保存在分布式集群上。
數(shù)據(jù)組織模塊:加載不同格式的數(shù)據(jù);根據(jù)內(nèi)容快速查詢數(shù)據(jù);針對(duì)云計(jì)算系統(tǒng)常存在缺乏數(shù)據(jù)來源的問題,本系統(tǒng)提供數(shù)據(jù)交換功能,保證數(shù)據(jù)在本地機(jī)器、指定服務(wù)器、分布式文件系統(tǒng)、分布式數(shù)據(jù)庫、傳統(tǒng)數(shù)據(jù)庫之間,快速、無縫地轉(zhuǎn)換和傳遞,便于與現(xiàn)有軟硬件設(shè)施相結(jié)合。
監(jiān)控采集模塊:對(duì)任務(wù)進(jìn)度、計(jì)算資源、存儲(chǔ)資源進(jìn)行監(jiān)控,并收集各節(jié)點(diǎn)產(chǎn)生的日志。
1.2 算法層
算法層包含大量并行數(shù)據(jù)分析算法,能高效準(zhǔn)確地處理各種結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)。算法層所包含的功能如下。
數(shù)據(jù)分析模塊。提供核心數(shù)據(jù)處理能力,包括4類并行算法集。
并行數(shù)據(jù)預(yù)處理算法集:實(shí)現(xiàn)抽取(Extract)、轉(zhuǎn)置(Transform)、加載(Load)等數(shù)據(jù)預(yù)處理操作,為后續(xù)數(shù)據(jù)分析奠定基礎(chǔ),含37種算法,主要分為:對(duì)數(shù)據(jù)類型和取值進(jìn)行約束、選擇的“清洗類”,進(jìn)行轉(zhuǎn)換操作的“轉(zhuǎn)換類”;進(jìn)行計(jì)算操作的“計(jì)算類”;對(duì)數(shù)據(jù)進(jìn)行分割、采樣的“抽樣類”;進(jìn)行集合運(yùn)算的“集合類”;進(jìn)行更新或插人數(shù)值的“更新類”。
并行數(shù)據(jù)挖掘算法集:將傳統(tǒng)的數(shù)據(jù)挖掘算法并行化,以滿足海量數(shù)據(jù)的處理要求,含16種算法,主要分為:有監(jiān)督的“分類”學(xué)習(xí)算法;無監(jiān)督的“聚類”學(xué)習(xí)算法;從數(shù)據(jù)中發(fā)現(xiàn)平凡相集的“關(guān)聯(lián)規(guī)則”算法。
并行數(shù)據(jù)統(tǒng)計(jì)算法集:針對(duì)數(shù)值型數(shù)據(jù)求解某些統(tǒng)計(jì)特征值,從不同角度反映數(shù)據(jù)的特性,含22種算法,主要分為:反映數(shù)據(jù)中心點(diǎn)位置的“集中趨勢(shì)”;反映數(shù)據(jù)變異程度的“離散趨勢(shì)”;描述數(shù)據(jù)分布形狀和對(duì)稱性的“分布趨勢(shì)”;計(jì)算不同組數(shù)據(jù)相關(guān)程度的“相關(guān)性分析”;根據(jù)一定假設(shè)條件由樣本推斷總體的“假設(shè)檢驗(yàn)”。
并行文本挖掘算法集:含11種算法,通過文本預(yù)處理、聚類、分類等一系列方法,實(shí)現(xiàn)在海量非結(jié)構(gòu)化文本數(shù)據(jù)中提煉知識(shí)的目的。
并行社會(huì)網(wǎng)絡(luò)分析算法集:社會(huì)學(xué)家以數(shù)學(xué)方法、圖論等為基礎(chǔ),提出社會(huì)網(wǎng)絡(luò)分析(SNA,Social Network Analysis),對(duì)網(wǎng)絡(luò)中各種關(guān)系進(jìn)行精確的量化分析,建立“宏觀和微觀”之間的橋梁.本算法集含22種算法,分為:針對(duì)點(diǎn)、邊、網(wǎng)絡(luò)進(jìn)行分析的“點(diǎn)特征”、“邊特征”、“網(wǎng)絡(luò)特征”算法;尋找網(wǎng)絡(luò)中所有的派系,并根據(jù)重疊關(guān)系產(chǎn)生社團(tuán)網(wǎng)絡(luò)的“社區(qū)發(fā)現(xiàn)”算法;挖掘網(wǎng)絡(luò)中社團(tuán)在不同時(shí)間段上的演化關(guān)系的“社區(qū)演化”算法。
算法模型模塊,采用W3C(World Wide Web Consortium)認(rèn)定的PIVWIL(Predictive Model Markup Language)標(biāo)準(zhǔn),描述和存儲(chǔ)數(shù)據(jù)挖掘模型;采用OMG(Object Management Group)制定的CWM(Conunon Warehouse Meta model)標(biāo)準(zhǔn)定義元數(shù)據(jù),以便其它數(shù)據(jù)倉(cāng)庫工具能夠理解各自的元數(shù)據(jù)含義。
接口封裝模塊.以Java API,WebService,REST(Representational State Transfer)3種方式封裝算法,以便算法的調(diào)用和二次開發(fā)。
1.3 邏輯層
邏輯層對(duì)存儲(chǔ)資源、計(jì)算資源進(jìn)行調(diào)控和管理,并以流程驅(qū)動(dòng)的方式分析數(shù)據(jù)。本系統(tǒng)支持分支、選擇等多種復(fù)雜結(jié)構(gòu);支持多條流程組合業(yè)務(wù)的方式;提供流程和業(yè)務(wù)兩個(gè)層次的調(diào)度功能,為用戶創(chuàng)建符合需要的數(shù)據(jù)處理步驟創(chuàng)造良好的平臺(tái)支撐。
1.4 界面層
基于富客戶端的web應(yīng)用,為用戶創(chuàng)建數(shù)據(jù)處理流程或業(yè)務(wù)提供良好的使用體驗(yàn)。
2 核心算法介紹
由于算法眾多,且篇幅有限,本章選取了數(shù)據(jù)挖掘算法集中的并行多元線性回歸算法,以及社會(huì)網(wǎng)絡(luò)分析算法集中的并行多源最短路徑算法進(jìn)行介紹。
2.1 并行多元線性回歸算法
用于確定因變量y和自變量X1,X2,…,Xp之間的關(guān)系。
首先,假設(shè)式(1)成立,其中ε~N(O,σ),β1,β2,…,βp以及σ為參數(shù),如果p>2,式(1)就是線性回歸模型:
求解線性回歸模型參數(shù)的最基本方法是最小二乘法。當(dāng)式(2)達(dá)到最小時(shí),用最小二乘法計(jì)算向量β。根據(jù)式(3)得到β的估計(jì)值β:
建立線性回歸模型,先計(jì)算訓(xùn)練集中自變量和因變量的平均值,然后利用這些均值計(jì)算矩陣L中每個(gè)元素。假設(shè)矩陣中的元素是l(i,j),則式(4)成立,其中X(i,j)是原始矩陣中元素,avg(X(i))是原始矩陣中第i列的平均值,N是向量的個(gè)數(shù),k的取值范圍是1到n。
以類似的方法計(jì)算向量B。假設(shè)l(i,y)是向量B的元素,可由式(5)求得:
根據(jù)式(6),得到回歸參數(shù)β向量,其中L-1可由Gauss-Jordan算法求得:
綜上,算法的步驟如下:
Step1設(shè)置MapReduce任務(wù),計(jì)算矩陣L和向量B的平均值;
Step2根據(jù)式(4)和(5)計(jì)算矩陣L和向量B的全部元素;
Step3根據(jù)式(6)計(jì)算向量p。
2.2 并行多源最短路徑算法
最短路徑問題是圖論中的經(jīng)典問題,而Dijkstra算法和Floyd-Warshall算法分別求解單源和多源最短路徑。基于MapReduce的單源最短路徑算法可由Dijkstra改進(jìn)而成;但Floyd-Warshall以鄰接矩陣作為輸入,而MapReduce僅適合讀入鄰接鏈表,并行多源最短路徑的求解無法基于Floyd-Warshall算法進(jìn)行改進(jìn)。一種解決方案是將并行單源最短路徑解法迭代多次,但系統(tǒng)開銷大,實(shí)用性低,本文提出了一種基于MapReduce的多源最短路徑的算法。
建立消息傳遞模型,每個(gè)節(jié)點(diǎn)都有一張消息表,即mesTable,用于保存到達(dá)該節(jié)點(diǎn)的消息。消息的內(nèi)容包括消息的源節(jié)點(diǎn)(發(fā)送該消息的源節(jié)點(diǎn),srcld),源節(jié)點(diǎn)到該節(jié)點(diǎn)的距離(distance)和消息的狀態(tài)(state)。模型按如下方式進(jìn)行消息傳遞:
Step1在各節(jié)點(diǎn)中的mesTable中添加第一條消息記錄,消息的源節(jié)點(diǎn)是節(jié)點(diǎn)自身,到該節(jié)點(diǎn)的距離為0,并將消息狀態(tài)置為active。
Step2將mesTable里的所有active狀態(tài)消息的distance和節(jié)點(diǎn)的鄰接邊的權(quán)值相加,并將該消息發(fā)送給該鄰接邊所對(duì)應(yīng)的鄰接節(jié)點(diǎn),最后將該消息狀態(tài)置為inactive。
Step3 當(dāng)一個(gè)節(jié)點(diǎn)收到新消息后,如果mesTable中未包含與新消息來自同一個(gè)源節(jié)點(diǎn)的消息,則將該消息放入本節(jié)點(diǎn)的mesTable中;反之,如果mesTable存在與新消息來自同一個(gè)源節(jié)點(diǎn)的舊消息,此時(shí),若新消息記錄中的distance小于舊消息中的distance,則用新消息更新舊消息,并置該消息狀態(tài)為active。
Step4重復(fù)步驟2,3,直到所有節(jié)點(diǎn)中的消息記錄狀態(tài)均為inactive。
該模型易用MapReduce實(shí)現(xiàn):在Map函數(shù)中,讀入節(jié)點(diǎn)鄰接表及mesTable,并向鄰居節(jié)點(diǎn)發(fā)送消息;在Reduce函數(shù)中,接收新消息,根據(jù)Step3的內(nèi)容更新節(jié)點(diǎn)的mesTable。
3 典型應(yīng)用
本系統(tǒng)不僅提供通用的數(shù)據(jù)挖掘能力,還能針對(duì)不同數(shù)據(jù)集快速開發(fā)多種應(yīng)用,例如用戶行為分析、用戶興趣識(shí)別、客戶流失預(yù)測(cè)、網(wǎng)絡(luò)質(zhì)量分析、用戶的多重身份識(shí)別、家庭用戶的社團(tuán)發(fā)現(xiàn)等等。本節(jié)將介紹利用電信數(shù)據(jù)開發(fā)的“套餐推薦”和“營(yíng)銷關(guān)鍵點(diǎn)發(fā)現(xiàn)”兩種典型應(yīng)用。
3.1 套餐推薦
背景:電信用戶的消費(fèi)行為具有特定的模式。發(fā)現(xiàn)這些消費(fèi)模式,能為人網(wǎng)新用戶推薦適合的業(yè)務(wù),并針對(duì)新的消費(fèi)需求推出新業(yè)務(wù)。
原理:利用了“客戶細(xì)分”和“客戶分類”兩種技術(shù)?蛻艏(xì)分,用于發(fā)現(xiàn)具有相似消費(fèi)行為的客戶,為發(fā)現(xiàn)消費(fèi)群體的消費(fèi)行為特征,及時(shí)制定符合消費(fèi)行為的套餐業(yè)務(wù)提供可能,常采用無監(jiān)督的聚類學(xué)習(xí)方法;客戶分類,是建立一套數(shù)據(jù)模型,發(fā)現(xiàn)客戶各屬性與客戶所選套餐之間的隱含關(guān)系,達(dá)到分類的目的。
實(shí)現(xiàn):將39列、約300萬條記錄的原始通話數(shù)據(jù),進(jìn)行預(yù)處理,選出20列數(shù)據(jù)——主要包括用戶、費(fèi)用、語音(主叫、被叫、本地、漫游、長(zhǎng)途等各種情況下的通話次數(shù)和總時(shí)長(zhǎng))及短信等信息;采用并行k均值算法實(shí)現(xiàn)客戶細(xì)分,將客戶劃分為6類:高端客戶、高端通話客戶、高端增值業(yè)務(wù)客戶、中端通話客戶、終端增值業(yè)務(wù)客戶和低端客戶;利用所得客戶類標(biāo)號(hào),以套餐編號(hào)作為分類屬性,采用并行C45的決策樹分類方法,建立客戶分類模型;最后將模型用于預(yù)測(cè)新用戶的潛在行為,為新人網(wǎng)用戶的套餐推薦方案提供決策支持。
結(jié)果:在86個(gè)計(jì)算節(jié)點(diǎn)上,對(duì)29GB原始數(shù)據(jù)(含100萬數(shù)據(jù))進(jìn)行分析,共耗時(shí)37分46秒。建模準(zhǔn)確率達(dá)到89.03%。證明本系統(tǒng)對(duì)傳統(tǒng)數(shù)據(jù)挖掘問題的處理,效果不俗。
3.2 營(yíng)銷關(guān)鍵點(diǎn)發(fā)現(xiàn)
本節(jié)將介紹采用并行社會(huì)網(wǎng)絡(luò)算法開發(fā)的典型應(yīng)用——“營(yíng)銷關(guān)鍵點(diǎn)發(fā)現(xiàn)”。
背景:營(yíng)銷關(guān)鍵點(diǎn),是自身消費(fèi)對(duì)其他客戶消費(fèi)有較大影響的點(diǎn)。通過探索營(yíng)銷關(guān)鍵點(diǎn),可開拓新的營(yíng)銷渠道,針對(duì)關(guān)鍵點(diǎn)進(jìn)行業(yè)務(wù)推廣,提高營(yíng)銷效率。由于營(yíng)銷關(guān)鍵點(diǎn)對(duì)周圍客戶的消費(fèi)行為影響較大,該客戶離網(wǎng)會(huì)加大周圍客戶離網(wǎng)的概率,因此需要對(duì)關(guān)鍵客戶進(jìn)行消費(fèi)跟蹤,及時(shí)預(yù)測(cè)消費(fèi)行為。
原理:Google提出了PageRank算法,用于衡量特定網(wǎng)頁相對(duì)于其他網(wǎng)頁的重要程度,將網(wǎng)頁改為用戶t將鏈接改為用戶間的通信關(guān)系,可將PageRank應(yīng)用于營(yíng)銷關(guān)鍵點(diǎn)的發(fā)現(xiàn)上。PageRank值越大意味著該用戶影響力越大。PageRank的計(jì)算是一個(gè)迭代過程,需要獲得鄰居節(jié)點(diǎn)的信息,這是通過消息傳遞模型實(shí)現(xiàn)的。
實(shí)現(xiàn):選擇原始通話數(shù)據(jù)中的主叫號(hào)碼、被叫號(hào)碼、通話時(shí)長(zhǎng)等屬性進(jìn)行建模,并去除通話時(shí)間、短信數(shù)量極小的用戶記錄,形成輸入數(shù)據(jù);利用并行社會(huì)網(wǎng)絡(luò)分析算法集的PageRank方法,構(gòu)建網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),找出通話網(wǎng)絡(luò)中的PageRank值較高的點(diǎn),作為營(yíng)銷關(guān)鍵點(diǎn)。
結(jié)果:在92個(gè)計(jì)算節(jié)點(diǎn)上,對(duì)含有340萬個(gè)通話節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行分析,共耗時(shí)約1小時(shí)46分鐘,輸出結(jié)果按用戶的影響力降序排列,證明本系統(tǒng)的圖挖掘功能拓展了數(shù)據(jù)挖掘的應(yīng)用范圍,具有很好的效果。
4 系統(tǒng)性能
本文對(duì)PDM進(jìn)行了測(cè)試,測(cè)試環(huán)境:各節(jié)點(diǎn)CPU為Intel (R) Xeon (R) CPU E5504 @ 2.00GHz、4核,內(nèi)存為8GB,硬盤1TB;節(jié)點(diǎn)之間傳輸速度為31.5MB/s~33.8MB/s;測(cè)試數(shù)據(jù)大小為403 GB.測(cè)試的部分結(jié)果如下:
在10個(gè)節(jié)點(diǎn)上,系統(tǒng)響應(yīng)100個(gè)用戶同時(shí)登錄平均時(shí)間是3.32s;
在10個(gè)節(jié)點(diǎn)上,對(duì)于典型的并行數(shù)據(jù)挖掘、統(tǒng)計(jì)算法需要2h左右(如圖2);
圖2 數(shù)據(jù)挖掘、數(shù)據(jù)統(tǒng)計(jì)算法的性能測(cè)試結(jié)果
在5個(gè)節(jié)點(diǎn)上,對(duì)分組計(jì)算和缺值處理算法進(jìn)行擴(kuò)展性測(cè)試,圖3顯示,隨數(shù)據(jù)規(guī)模的增大,算法耗時(shí)呈線性增長(zhǎng),具有良好的擴(kuò)展性。
圖3 分組計(jì)算和缺值處理算法的性能測(cè)試結(jié)果
社會(huì)網(wǎng)絡(luò)分析中,如果數(shù)據(jù)量過大,串行算法消耗的資源和時(shí)間是難以接受的。表1顯示,在30個(gè)節(jié)點(diǎn)上,將Map個(gè)數(shù)和Reduce個(gè)數(shù)都設(shè)置為60,本系統(tǒng)的數(shù)據(jù)替換、度數(shù)統(tǒng)計(jì)、均值、最大值、邊點(diǎn)統(tǒng)計(jì)、單源最短路徑、接近度(Closeness)等算法計(jì)算復(fù)雜度為線性;聚集系數(shù)和社團(tuán)發(fā)現(xiàn)算法容易受輸入數(shù)據(jù)的影響,如果輸入的網(wǎng)絡(luò)具有比較大的局部密集子圖容易造成計(jì)算的不均衡,會(huì)使某個(gè)Reduce的計(jì)算量急劇增加導(dǎo)致整體的計(jì)算時(shí)間較長(zhǎng),但它們?cè)谙∈璧木W(wǎng)絡(luò)中的復(fù)雜度近似線性,而通話網(wǎng)是一般是稀疏網(wǎng)絡(luò),因此適用于分析通話數(shù)據(jù)。
表1 社會(huì)網(wǎng)絡(luò)分析的性能測(cè)試結(jié)果
5 結(jié)論
本文從系統(tǒng)架構(gòu)、核心算法介紹、典型應(yīng)用、系統(tǒng)性能等多個(gè)角度,全面介紹了一款基于Hadoop的并行數(shù)據(jù)挖掘系統(tǒng),本系統(tǒng)融合了數(shù)理統(tǒng)計(jì)、文本分析及圖挖掘技術(shù),擴(kuò)大了傳統(tǒng)數(shù)據(jù)挖掘的范圍和效果;針對(duì)傳統(tǒng)MapReduce的并行計(jì)算機(jī)制,優(yōu)化了數(shù)據(jù)處理流程的性能;提供的數(shù)據(jù)組織功能,解決了HDFS數(shù)據(jù)來源問題,增加了類數(shù)據(jù)庫處理能力;業(yè)務(wù)引擎,能自由組合各類分析算法,滿足不同層次的要求,易于開發(fā)典型應(yīng)用,因此,本系統(tǒng)性能優(yōu)越、功能豐富、商用前景廣泛,是一個(gè)前沿且注重實(shí)用的實(shí)踐.下一步的工作有:繼續(xù)添加數(shù)據(jù)分析算法,優(yōu)化算法性能;對(duì)于一些不便于用MapReduce機(jī)制處理的算法類型,可以探索新的并行計(jì)算模型,例如考慮融入圖數(shù)據(jù)存儲(chǔ)和計(jì)算框架,提高圖挖掘的效率。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:PDM:基于Hadoop的并行數(shù)據(jù)分析系統(tǒng)