顏廷龍,李 瑛,王鳳芹
(海軍航空大學,煙臺 264001)
隨著當今世界的發展,各行各業產生了大量的數據,已經遠超常規數據處理手段的處理能力,海量數據處理面臨重大挑戰[1].作為海量數據處理的有效手段[2],大數據處理技術發展已日趨成熟[3],并在生活服務的各個領域中廣泛發展[4].官方也制定了相關政策,推動大數據技術的發展[5].
現代化戰機裝有眾多傳感器,能夠記錄數百個飛行參數.目前,海軍航空兵部隊,操課,訓練,演習都產生了大量的飛行數據.除了這些飛行數據,維修保障基地,軍械部門也產生了大量數據.如果可以將這些數據集成分析,可以有效提高飛機飛行安全,提高海軍航空兵部隊的科學化管理和決策能力.
針對大數據技術在航空系統的應用,目前不少專家已經進行了研究.在航空數據分析領域,Singh和Kaushik 介紹了使用大數據基礎架構分析航空大數據的方法,并應用大數據工具為機務維修保障提出輔助決策[6].陳金等基于大數據技術設計了一個飛機健康管理的平臺[7].Li 等針對目前機務維修保障存在的維護效率低等問題,提出了一種飛機健康管理的大數據體系架構[8].Rehm 等將高維數據可視化技術應用到航空大數據和天氣大數據,解決了航空大數據和天氣大數據的數據分析問題[9].
雖然在各大航空公司,大數據技術已經得到廣泛應用,但部隊的航空數據管理上還尚不成熟.其業務管理模式,數據來源,平臺性能需求等方面都與傳統的航空大數據平臺都有顯著不同.這就要求針對部隊的實際業務需求設計航空數據平臺.
Apache Spark是用于大規模數據處理的統一分析引擎.它提供多種語言的API 接口.它還包含豐富的上層基礎應用.相比于Hadoop,使用方便,運行速度快,適用場景更廣泛.
航空信息服務平臺設計是在針對航空數據的優化采集和分析基礎上,面向航空兵部隊的應用需要,實現航空大數據平臺的開發和設計.本文提出了基于Spark的航空信息服務平臺設計方案,首先進行平臺的總體框架設計,然后設計了主要的功能模塊,最后在實驗環境下實現平臺的設計與開發,進行仿真實驗,驗證平臺在處理大數據方面的性能優勢.
海軍航空兵部隊的航空信息涵蓋飛行訓練過程中產生的所有與飛機飛行相關的數據,主要包括:(1)飛參數據;(2)地空數據鏈(ACARS);(3)作戰指揮數據;(4)任務計劃數據等,數據量隨著海航部隊飛機的增多和時間的積累逐步增大.
航空服務信息具有多源異構的屬性,包括多來源、多性質、多層次、關聯性等特點.
目前,海軍航空部隊傳統的數據存儲方案是各個機務部門將數據分散存儲到多個系統中.這樣不便于工作人員的管理和維護,因此迫切需要一個可以匯總存儲多個系統的航空信息信息服務平臺.
根據對航空信息的來源的特點,本文設計了一個基于大數據的航空信息服務平臺,使用Hadoop 分布式文件系統(HDFS)完成航空信息的存儲,基于Spark和相關數據挖掘算法實現航空信息的快速處理,數據挖掘[10].分析部隊的實際需求,平臺必須滿足下列要求:
(1)分布式.根據航空信息的數據量大,來源廣等特點,平臺需采用分布式文件系統存儲,在實現數據的高效存儲和高容錯性.
(2)并行化.平臺必須支持運算并行化來提升計算速度,具有良好的數據處理能力.并且后續僅通過簡單的節點增加就可以帶來計算速度的提升,以便于相關管理人員日后的維護和管理.
(3)擴展性強.平臺應模塊化設計,由于海軍航空部隊的業務需求復雜,需要平臺可根據業務需求的變化,更新數據分析模塊,滿足定制化需求.
(4)可用性強[11].平臺以使用者為中心,設計能符合使用者的習慣與需求,簡單易用.
本平臺基于Spark 進行搭建將航空信息服務平臺為四層架構,自頂向下采用接口連接相鄰層,數據的獲取和存儲是最底層,分別為數據源層和數據存儲層.再上層為計算分析層,主要提供計算框架和數據處理功能.交互應用層,為平臺的用戶提供交互界面[12],平臺總體框架圖如圖1所示.

圖1 平臺總體框架圖
數據源層的主要功能是數據的獲取,即各個航空單位存儲的航空數據,包含需要從原有關系型數據庫導入的數據,和新產生的數據,數據具有多源異構的特性.數據源層還會進行數據預處理工作,通常包含清洗、集成、變換以及歸約.目的是對重復數據的清洗和對缺少數據的填補;消除數據的冗余性;將數據的存儲形式改變以更適合數據處理[13];預處理后的數據經過ETL 處理,采用Sqoop 將處理后的源數據高效的存儲到數據存儲層的數據倉庫中.
數據存儲層采用Hadoop的分布式存儲框架HDFS,將航空數據以文件形式存儲獲取到的航空數據,HDFS采用主從架構,由一個NameNode和多個DataNode 組成.NameNode 主要管理文件塊的Namespace和Block管理,維護著系統文件樹的元數據和各個文件所在的DataNode 位置信息.DataNode 存儲和讀取具體文件,并定時地向NameNode 發送心跳信息.HDFS 將文件分塊存儲在各個DataNode 上,默認的Block 塊大小為128 MB.為提高平臺業務運算效率,采用Hadoop 生態下的開源工具Hive 構建航空信息數據倉庫,管理元數據.
計算分析層的作用是對存儲的航空數據進行數據分析,實現各種業務需求.包括針對航空數據的數據挖掘,執行SparkSQL 命令等.其中航空數據挖掘基于SparkMllib 庫和利用Spark 編程接口自定義的聚類算法完成.
計算分析層的基本工作流程如圖2所示,首先,構建運行環境,創建一個SparkContext,并且向資源管理器Yarn 申請Executor 資源,并啟動相應資源.然后SparkContext 依據RDD的依賴關系構建DAG 圖,同時創建一個DAGScheduler 對象依據作業和任務的依賴,制定調度邏輯,將DAG 圖分解成Stage,因為Stage之間存在依賴關系,只有前面的Stage 運算完,后面的才開始運算.最后,將完成的Stage 發送給TaskScheduler,再由TaskScheduler 將Task 發送給Executor 運行,運行結束后釋放計算資源[14].

圖2 計算分析層基本工作流程
用戶交互層主要功能是為用戶提供良好的使用界面,并包含數據查詢,數據分析,數據可視化等功能,并將航空信息信息直觀地展示出來,提高海軍航空部隊的訓練效率和管理效能,平臺的數據可以通過圖表,直觀展示出原始飛參數據,平臺的分析結果等.
航空信息服務平臺的功能模塊主要劃分為數據存儲模塊、數據分析模塊和信息查詢模塊3個功能子模塊,如圖3所示.數據存儲模塊的功能保障數據的存儲和資源管理.數據分析模塊主要實現將數據挖掘算法寫入到Spark中,也可以使用Spark 自帶的Mllib 機器學習庫進行分析現對航空信息的數據挖掘.信息查詢模塊主要實現對平臺基礎數據和分析數據查詢,還有相關數據的上傳下載.

圖3 平臺主要功能模塊設計
數據存儲模塊的功能是將從多個數據源獲取的航空數據傳入到HDFS中.主要包括經過預處理后的航空數據以及平臺生成的數據,以特定的格式存儲到HDFS中.同時,平臺針對每一份數據都包含多份備份,提高了平臺的容錯能力.避免出現數據丟失的情況,此外,還應用Yarn 進行統一的資源管理和調度.
數據分析模塊主要是應用Spark的內存計算引擎,實現針對航空信息的數據挖掘處理.利用Spark 自帶的編程接口和相關組件實現數據分析模塊的調入.平臺也根據飛參數據具有多元時間序列數據的特點,自定義了數據分析算法,可根據飛參數據進行飛機的飛行動作識別和劃分.
開發了基于航空服務信息服務平臺的Web 應用,可對相關數據上傳下載,相關數據的可視化展示,應用SparkSQL 實現數據查詢功能,為用戶提供了統一的數據源訪問接口.
為了測試航空信息服務平臺的性能,本文將航空信息服務平臺(AISP)與基于SQL Server的傳統航空數據倉庫(TDW)針對航空數據的計算與存儲進行對照實驗.
本文測試航空信息服務平臺采用的實驗集群由1 臺master 節點和8 臺slave 節點組成,集群的節點配置參見表1.

表1 計算機節點配置
實驗數據采用海軍某場站存儲的飛參數據,數據量分別為2.4 MB,20 MB,200 MB,500 MB,1000 MB和2000 MB,共5 組數據,分別進行數據查找和數據預處理測試.
第1 組實驗測試使用同一條SQL 語句查找符合條件的數據,實驗次數為5 次,查找時間取平均值,測試用SQL 語句為“select type,count(*)as count from test group by type order by count desc;”.SQL 語句執行效率對比如圖4所示.
第2 組實驗比較航空信息服務平臺針對不同數量級的實驗數據預處理的情況,采用插值法擬合空缺的數據,實驗結果如圖5所示.

圖4 SQL 語句執行情況

圖5 預處理時間使用情況
由實驗結果可以看出,當數據量較小的時候,基于SQL Server的傳統航空數據倉庫數據處理速度優于基于Spark的航空信息服務平臺,但是當數據量達到500 MB 時,基于Spark的航空信息服務平臺更具優勢.通過簡要分析,基于Spark的航空信息服務平臺在接收到數據處理任務時,需要進行初始化,節點通信,資源調度等,這些將耗費一定的時間和資源,由此可知,在數據量小的時候,大數據平臺很多資源都浪費在系統資源開銷上,效率反不如單機系統.但大數據在面對海量數據的優勢依舊明顯.另外,大數據平臺可以通過增加集群數量實現性能的擴展,更能適應海軍航空兵數據量高速增長的需要.
本文主要實現了基于Spark的航空信息服務平臺的設計,采用Hadoop的分布式存儲框架HDFS 以文件形式存儲獲取到的航空數據,和開源工具Hive 構建航空信息數據倉庫,并詳細介紹了平臺3個主要功能模塊的設計.另外,本文實驗對比了航空信息服務平臺與傳統航空數據倉庫之間的性能對比.最后,實驗結果表明,航空信息服務平臺在計算大規模數據上具有明顯優勢.但目前航空信息服務平臺的業務還不完善.未來的主要工作一是增加針對其他航空信息的業務應用探索.二是完善針對海軍各型飛機的QAR 數據譯碼工作.