趙 健
(長(zhǎng)治學(xué)院計(jì)算機(jī)系,山西長(zhǎng)治 046011)
隨著艦船通信網(wǎng)絡(luò)應(yīng)用的普及,艦船通信網(wǎng)絡(luò)數(shù)據(jù)量持續(xù)提升[1],由此導(dǎo)致艦船通信網(wǎng)絡(luò)的處理與解析效率成為艦船通信網(wǎng)絡(luò)數(shù)據(jù)應(yīng)用過(guò)程中亟需解決的問(wèn)題[2]。相關(guān)領(lǐng)域研究學(xué)者對(duì)于通信數(shù)據(jù)的處理方法進(jìn)行了大量研究。龍草芳等[3]針對(duì)通信網(wǎng)絡(luò)數(shù)據(jù),采用分布數(shù)據(jù)數(shù)據(jù)加密方法對(duì)通信網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密處理。但該方法實(shí)際應(yīng)用過(guò)程中無(wú)法保障數(shù)據(jù)處理的實(shí)時(shí)性。杜海賓等[4]針對(duì)交互量巨大的通信網(wǎng)絡(luò)數(shù)據(jù)處理問(wèn)題,引用基于FlatBuffers的數(shù)據(jù)序列化技術(shù)提升數(shù)據(jù)通信效率。但該方法實(shí)際應(yīng)用過(guò)程中受到數(shù)據(jù)規(guī)模的約束性,且方法可擴(kuò)展性較差。針對(duì)上述問(wèn)題,本文研究基于hadoop的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理方法,提升艦船通信網(wǎng)絡(luò)數(shù)據(jù)處理能力,降低數(shù)據(jù)處理時(shí)間。
艦船通信網(wǎng)絡(luò)數(shù)據(jù)處理過(guò)程中,結(jié)合艦船通信網(wǎng)絡(luò)數(shù)據(jù)特性[5],設(shè)計(jì)基于hadoop的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理架構(gòu)。該結(jié)構(gòu)是基于hadoop以Master-Slave架構(gòu)為核心的分布式集群,通過(guò)分布式文件系統(tǒng)HDFS與My SQL 關(guān)系型數(shù)據(jù)庫(kù)處理艦船通信網(wǎng)絡(luò)數(shù)據(jù)。艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理架構(gòu)的設(shè)計(jì)以MVC三層功能結(jié)構(gòu)為基礎(chǔ),圖1為架構(gòu)的功能分層。
圖1 基于hadoop 的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理架構(gòu)Fig.1 Data parallel processing architectureof ship communication network based on hadoop
基于hadoop的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理架構(gòu)共分為3層,由上至下分別是數(shù)據(jù)應(yīng)用層、數(shù)據(jù)處理層和數(shù)據(jù)存儲(chǔ)層。
數(shù)據(jù)應(yīng)用層是用戶與數(shù)據(jù)處理架構(gòu)的交互工具,用戶可以操作艦船通信網(wǎng)絡(luò)與數(shù)據(jù)并行處理架構(gòu)實(shí)施交互,上傳所采集的艦船通信網(wǎng)絡(luò)數(shù)據(jù),也能夠利用Web網(wǎng)頁(yè)或各類智能終端查看艦船通信網(wǎng)絡(luò)數(shù)據(jù)。
數(shù)據(jù)處理層運(yùn)行MapReduce程序,主要功能為實(shí)現(xiàn)艦船通信網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)、艦船通信網(wǎng)絡(luò)數(shù)據(jù)解析、艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類等的并行化處理,同時(shí)完成數(shù)據(jù)并行處理架構(gòu)維護(hù)的相關(guān)操作,如數(shù)據(jù)上傳與下載、集群間數(shù)據(jù)同步等。
艦船通信網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)層的設(shè)計(jì)參考大數(shù)據(jù)平臺(tái)的特性,采用HBase與HDFs 等多種不同的存儲(chǔ)方式保障艦船通信數(shù)據(jù)存儲(chǔ)的可擴(kuò)展性(主要針對(duì)不同格式數(shù)據(jù)的存儲(chǔ)問(wèn)題),并利用MySQL 數(shù)據(jù)庫(kù)保障艦船通信網(wǎng)絡(luò)數(shù)據(jù)的安全性問(wèn)題。
艦船通信網(wǎng)絡(luò)數(shù)據(jù)處理層的主要功能是利用MapReduce程序?qū)崿F(xiàn)艦船通信網(wǎng)絡(luò)數(shù)據(jù)的并行化處理。
1.2.1 改進(jìn)的K-means算法
艦船通信網(wǎng)絡(luò)數(shù)據(jù)處理層利用改進(jìn)的K-means聚類算法實(shí)現(xiàn)艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類處理。X={X1,X2,···,Xi,···Xn}表示初始艦船通信網(wǎng)絡(luò)數(shù)據(jù)集合,其中Xi和分別n表示不同的艦船通信網(wǎng)絡(luò)數(shù)據(jù)或數(shù)據(jù)集和艦船通信網(wǎng)絡(luò)數(shù)據(jù)數(shù)量。模糊C均值聚類算法劃分艦船通信網(wǎng)絡(luò)數(shù)據(jù)類別過(guò)程中對(duì)通信網(wǎng)絡(luò)數(shù)據(jù)集內(nèi)的相似數(shù)據(jù)實(shí)施歸類處理,直至劃分為最小的數(shù)據(jù)集為止,其函數(shù)表達(dá)式如下:
式中,sij和d(Xj,Qi)分別為第j個(gè)艦船通信網(wǎng)絡(luò)數(shù)據(jù)集內(nèi)的第i個(gè)數(shù)據(jù)或數(shù)據(jù)集和第j個(gè)數(shù)據(jù)集同其他數(shù)據(jù)集內(nèi)第i個(gè)數(shù)據(jù)中心的歐式距離;Qi為第i類或第i個(gè)數(shù)據(jù)集。
式中,m為對(duì)艦船通信網(wǎng)絡(luò)數(shù)據(jù)集劃分的次數(shù)。
以g表示第g次數(shù)據(jù)集的劃分,利用式(3)表示函數(shù)表達(dá)式內(nèi)的歐式距離:
式中:xik和xjk分別為艦船通信網(wǎng)絡(luò)數(shù)據(jù)集X內(nèi)的第i個(gè)和第j個(gè)數(shù)據(jù)集中的第k個(gè)數(shù)據(jù)或數(shù)據(jù)集。
利用表達(dá)式描述改進(jìn)后K-means算法內(nèi)的聚類中心數(shù)據(jù)集或中心點(diǎn),以h表示聚類中心點(diǎn)的數(shù)據(jù)集,由此得到:
式中:dw(xa,xb)為改進(jìn)后K-means算法內(nèi)不同艦船通信網(wǎng)絡(luò)數(shù)據(jù)類別的加權(quán)歐式距離,其計(jì)算公式如下:
式中,wi為第i個(gè)艦船通信網(wǎng)絡(luò)數(shù)據(jù)集的權(quán)重。
1.2.2K-means算法的MapReduce并行化實(shí)現(xiàn)
K-means算法內(nèi),單獨(dú)進(jìn)行不同元素同質(zhì)心距離的計(jì)算,此過(guò)程中各元素間不存在相關(guān)性,所以,可通過(guò)MapReduce 模型實(shí)現(xiàn)基于K-means 算法的艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類MapReduce 并行化處理,圖2為并行化處理流程圖。
圖2 聚類算法的MapReduce 并行化處理過(guò)程Fig.2 MapReduce parallelization process of clustering algorithm
在K-means算法的MapReduce 并行化實(shí)現(xiàn)過(guò)程中最重要的2 個(gè)步驟就是Map函數(shù)的設(shè)計(jì)與Reduce函數(shù)的設(shè)計(jì)。
1)Map函數(shù)的設(shè)計(jì)
基于K-means算法的艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類MapReduce并行化實(shí)現(xiàn)過(guò)程中,Map函數(shù)的主要功能為由HDFS文件內(nèi)采集艦船通信網(wǎng)絡(luò)數(shù)據(jù),針對(duì)不同艦船通信網(wǎng)絡(luò)數(shù)據(jù),確定其至不同質(zhì)心的距離,同時(shí)針對(duì)此艦船通信網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行類別標(biāo)記。將初始艦船通信網(wǎng)絡(luò)數(shù)據(jù)與聚類質(zhì)心作為M a p函數(shù)輸入〈key,value〉,即輸入數(shù)據(jù)為艦船通信網(wǎng)絡(luò)數(shù)據(jù)的〈行號(hào),記錄〉 ;將中間結(jié)果 〈key′,value′〉作為輸出,即輸出數(shù)據(jù)為艦船通信網(wǎng)絡(luò)數(shù)據(jù)的〈 所屬類別,記錄〉。
2)Reduce函數(shù)的設(shè)計(jì)
基于K-means算法的艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類MapReduce并行化實(shí)現(xiàn)過(guò)程中,Reduce函數(shù)的主要功能是依照Map函數(shù)的數(shù)據(jù)結(jié)果,更新聚類中心,便于下一輪Map函數(shù)應(yīng)用。確定標(biāo)準(zhǔn)測(cè)度函數(shù)值,基于該值確定迭代過(guò)程都滿足終止條件。
MapReduce并行化處理過(guò)程在運(yùn)行Reduce函數(shù)前會(huì)合并處理Map函數(shù)的〈key′,value′ 〉,將其中key 值一致的多組〈key′,value′ 〉合并為一對(duì)。以 〈所屬類別,{記錄合計(jì)} 〉和 〈 類別號(hào),均值向量+該類的平方誤差和〉分別作為Reduce函數(shù)的輸入 〈key′′,value′′ 〉和輸出〈key′′′,value′′′〉 。
基于K-means 算法的艦船通信網(wǎng)絡(luò)數(shù)據(jù)聚類MapReduce并行化實(shí)現(xiàn)過(guò)程中調(diào)用以上MapReduce 過(guò)程,不同迭代過(guò)程中均獲取一個(gè)新的job,直至2次獲取的平方誤差和差值低于設(shè)定閾值,即可終止迭代過(guò)程。Map函數(shù)最后一次輸出的 〈key′,value′〉即為艦船通信網(wǎng)絡(luò)數(shù)據(jù)最終分類結(jié)果。
本文研究基于hadoop的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理方法,為驗(yàn)證本文方法在實(shí)際艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行化處理過(guò)程中的應(yīng)用性能,從某系統(tǒng)中選取任意一艘艦船,采集其通信網(wǎng)絡(luò)數(shù)據(jù)生成數(shù)據(jù)集。該數(shù)據(jù)集內(nèi)共包含37874658條通信數(shù)據(jù),對(duì)該數(shù)據(jù)集實(shí)施處理將其劃分為5個(gè)大小有所差異的實(shí)驗(yàn)數(shù)據(jù)集,具體劃分結(jié)果如表1所示。本文方法性能檢驗(yàn)過(guò)程中搭建基于hadoop部分的6臺(tái)計(jì)算機(jī)并行運(yùn)行環(huán)境,將其中1臺(tái)計(jì)算機(jī)和剩余5臺(tái)計(jì)算機(jī)分別為子任務(wù)中的主要任務(wù)節(jié)點(diǎn)和其他子任務(wù)節(jié)點(diǎn)。
表1 實(shí)驗(yàn)數(shù)據(jù)集劃分結(jié)果Tab.1 Experimental data set division results
為驗(yàn)證本文方法中數(shù)據(jù)聚類算法的有效性,采用本文方法對(duì)數(shù)據(jù)集1實(shí)施聚類中心確定,并同數(shù)據(jù)集的實(shí)際聚類中心進(jìn)行對(duì)比,結(jié)果如表2所示。分析表2可得,針對(duì)數(shù)據(jù)集1,本文方法所得的聚類中心同實(shí)際聚類中心基本一致,誤差控制在百分?jǐn)?shù)級(jí)別,由此表明本文方法能夠獲取較為準(zhǔn)確的聚類中心,為后續(xù)實(shí)現(xiàn)高精度的數(shù)據(jù)聚類結(jié)果打下堅(jiān)實(shí)基礎(chǔ)。
表2 通信數(shù)據(jù)聚類性能分析結(jié)果Tab.2 Communication data clustering performance analysis results
表3為不同集群節(jié)點(diǎn)數(shù)量條件下5個(gè)數(shù)據(jù)集的運(yùn)行時(shí)間。分析表3可得,在數(shù)據(jù)規(guī)模一致的條件下,集群節(jié)點(diǎn)數(shù)量越多任務(wù)完成時(shí)間越短。由此說(shuō)明通過(guò)提升集群節(jié)點(diǎn)數(shù)量能夠大幅提升數(shù)據(jù)處理能力,表明本文方法具有較好的擴(kuò)展性。
表3 本文方法運(yùn)行時(shí)間Tab.3 Operation time of thismethod
通過(guò)加速比能判斷本文方法的并行處理性能,其能夠呈現(xiàn)通過(guò)降低運(yùn)行時(shí)間呈現(xiàn)的性能提升效果。圖3為本文方法的加速比測(cè)試效果。分析可得,本文方法的加速比趨于線性。因Hadoop集群初始運(yùn)行需要花費(fèi)一定時(shí)間,因此在數(shù)據(jù)量較少的條件下,本文方法的加速比性能并不明顯。但在數(shù)據(jù)量較大的條件下,本文方法的加速比性能同數(shù)據(jù)量之間表現(xiàn)出正比例相關(guān)。表明在數(shù)據(jù)量越大的條件下本文方法的加速比性能越好,也就是本文方法適于應(yīng)用在海量艦船通信網(wǎng)絡(luò)數(shù)據(jù)的處理中。
圖3 加速比分析結(jié)果Fig.3 Acceleration ratio analysis results
本文研究基于hadoop的艦船通信網(wǎng)絡(luò)數(shù)據(jù)并行處理方法,利用MapReduce實(shí)現(xiàn)艦船通信網(wǎng)絡(luò)數(shù)據(jù)的并行化聚類,同時(shí)通過(guò)實(shí)驗(yàn)驗(yàn)證了本文方法的應(yīng)用性能。在后續(xù)研究過(guò)程中將進(jìn)一步優(yōu)化本文方法,探索艦船通信網(wǎng)絡(luò)數(shù)據(jù)其他處理過(guò)程的并行化實(shí)現(xiàn)。