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