武警工程大學研究生管理大隊 楊 曦
武警工程大學信息工程系 鞏青歌
基于云計算的后勤保障資源數據處理平臺研究與設計
武警工程大學研究生管理大隊 楊 曦
武警工程大學信息工程系 鞏青歌
近年隨著全軍信息化建設的迅速發展,后勤保障信息化勢在必行,當前每天產生于后勤保障相關的數據量巨大,既有傳統保障資源數據,又有與部隊相關的文件資料、戰場態勢及流媒體中的信息等非結構化數據,但目前沒有對這些保障資源實現集中、統一調配,許多資源數據沒有得到很好的利用。本文針對這一問題提出基于云計算的后勤保障數據處理平臺,對后勤保障工作相關數據進行采集、分析及處理,實現保障資源綜合管理,為部隊快速、高效地完成后勤保障任務提供可行性。
云計算;后勤保障;綜合管理
武警部隊擔負著維護國家安全和社會穩定,保障人民安居樂業的神圣使命,是社會主義現代化建設的武裝保障。當前環境下,突發事件難以預料、情況復雜;搶險救災事發突然、形勢緊急,處置突發事件、擔負搶險救災和遂行維穩反恐行動已成為武警部隊執勤的重要任務,其中,后勤應急保障工作作為日常工作中的支撐,在當前環境下也變得越來越重要。
在大數據時代的今天,信息產業高速發展,武警部隊三級網系統中的服務器每天產生、更新、處理、存貯巨大的有價值資源數據,面對如此龐大復雜的數據,需要進行整理、辨別、運算,才能將隱含的、凌亂的、未知的及有潛在應用價值的可用信息轉化為進行決策的支撐、依據,為決策支持提供數據依據。在本系統中擬利用云計算平臺對以上的數據進行處理、分析,實現保障資源數據的綜合、一體化服務,便于部隊完成平時保障任務,同時為戰時應急保障任務提供數據支持,為首長決策提供可靠的參考依據。
本文依據當前形勢和背景,設計了基于Hadoop的保障資源處理平臺,如圖1所示。首先,在數據組件、模型組件、互聯網組件以及獲取相關數據的互聯網關鍵節點部署數據獲取設備,對當前網絡中的流量數據進行采集。將收到的原始數據通過數據轉發的分類、合并、轉發等操作,最終上傳至Hadoop平臺的數據存儲區。為保證存儲數據的準確、全面、可靠性,首先使用HDPF[1](Hadoop-based Data Processing Framework)模塊對原始保障資源數據進行預處理,過濾其中錯誤、無用及殘缺數據,將預處理后的初級數據存入HDFS中。由于這些實時數據來自互聯網,絕大多數是半結構化、非結構化的數據,本文針對以上特點,利用MapReduce技術進行分析處理。當決策者需要時,調用MapReduce分析處理存儲在HDFS中的海量資源數據及與資源保障相關的數據,從中獲取有利用價值的分析結果例如受災地區的天氣、交通狀況,群體性事件中鬧事群體的規模、集結的范圍等戰場態勢數據。

圖1 基于Hadoop保障資源數據處理平臺架構

圖2 HDFS數據寫入流程
HDFS文件系統對海量后勤保障資源數據處理平臺提供據存取服務,包含NameNode、SecondNameNode和DataNode三類節點[2],具體功能:
(1)NameNode:就是主控制服務器,管理文件系統命名空間(Namespace)同時管理目錄和元數據。NameNode節點存儲與數據塊有關信息,如文件和數據塊、數據塊和DataNode節點之間的映射關系。
(2)Second NameNode:當NameNode節點發生故障時作為備用節點,可以對數據進行恢復,保證HDFS系統正常工作。它與NameNode節點保持定時通信,并對其元數據信息進行復制備份。
(3)DataNode:DataNode節點維護其存儲的數據塊管理工作,屬于從節點。HDFS將文件分塊存儲,每個數據塊默認為64MB,將它們存儲在不同的DataNode節點中。同時依據HDFS默認設置的3個副本,在多個DataNode備份相同數據塊。
當用戶需將文件寫入到HDFS系統中時,通過客戶端向NameNode節點申請包括寫入的各個DataNode節點的數據塊信息。NameNode依據申請分配節點,在HDFS文件系統的默認配置中認為所有機器在同一機架。數據寫入流程如圖2所示。
(1)客戶端調用DistributedFile-System類實例化對象,同時調用create方法生成新文件。
(2)DistributedFileSystem對象向NameNode節點發出RPC請求,NameNode節點依據用戶的權限判斷是否創建,若判斷不通過,NameNode則返回異常信息,寫入操作終止,否則繼續。
(3)DistributedFileSystem 封裝一個 FSDataOutputStream 對象,以備寫入數據到新文件中。
(4)通過客戶端用戶在新生成文件中寫入數據。FSDataOutputStream將數據切分為多個數據包,同時將它們組成數據流,以便之后寫入DataNode上的數據塊。
(5)FSDataOutputStream向NameNode請求數據存儲空間,即數據塊和DataNode節點信息。依據HDFS配置副本數決定DataNode節點數。
(6)FSDataOutputStream將數據包組成的數據流逐個寫入第一個DataNode節點,由該DataNode接著寫入第二個DataNode,當所有需要寫入的DataNode寫入完畢后停止。
(7)寫入完成的DataNode向源節點發送確認報文,證明完成寫入操作。若該過程某個DataNode節寫入失敗,NameNode分配新DataNode繼續寫入操作當數據包在指定DataNode完成寫入后,將其從數據流中刪除,認為一個數據包寫入操作完成。
(8)當所有數據包寫入完成,則本次用戶寫入數據流程結束。
MapReduce[3]最早由谷歌公司提出同時運用至網絡搜索服務的編程模型,采用分布式并行計算,可以處理TB甚至PB級別數據,是Hadoop架構最核心技術之一。
MapReduce技術主要有Map函數和Reduce函數組成[4],以鍵值對(Key-Value)[5]作為輸入及輸出,用戶可根據需求自定義MapReduce函數,系統在接收海量的與保障資源相關信息數據后,通過MapReduce框架對數據進行處理。以油料資源為例,該資源數據包括油庫的地理位置、油庫名稱、儲油量、日常消耗等數據,可以用于保障任務中的油料供應點分析、資源調度點分析,以及調度路線規劃等各方面數據挖掘及分析。這些類型的數據采集一周或半月數據量將達到TB級別,使用普通服務器對其進行處理,將消耗大量時間,利用MapReduce技術可以在短時間內高效完成。例如:加油站代號作為Key值,日消耗和供給量為Value值,可以快速統計該區域內承擔業務最多的加油站等有用規律。

圖3 MapReduce框架運行流程
MapReduce技術為滿足用戶需求,提供了可編寫的編程模型,用戶根據所需編寫Map、Reduce函數后就可在Hadoop平臺中運行程序,得到分析結果。Hadoop平臺的MapReduce框架采用主從架構,由一個JobTracker主節點和多個TaskTracker從節點組成,JobTracker負責包括確定用戶提供編程的執行順序、Map和Reduce任務的分配的編程調度。TaskTracker負責包括Map和Reduce任務以及推測性任務的執行等主節點指定的任務。運行流程如圖3所示。
(1)用戶提交編程作業。用戶根據所需編寫MapReduce程序并運行,編程客戶端向JobTracker提交該編程相關信息,申請編程作業ID號,在客戶端驗證編程無誤后,將編程資源儲存至HDFS中,最后客戶端向JobTracker申請執行編程。
(2)JobTracker初始化用戶編程。JobTracker接收編程后,創建與之相關數據及編程對象,然后JobTracker根據配置的調度算法,將編程放入編程棧中,以便后續分配。
(3)任務分配。從TaskTracker模塊定時向JobTracker發送信息,JobTracker程序棧如果存在待分配的編程,綜合收到的信息判斷是否向TaskTracker分配任務,當TaskTracker的Map任務槽有空余時,JobTracker依據策略向該節點分配合適Map任務。當JobTracker分配任務時,優先考慮給TaskTracker分配Map任務,只有當TaskTracker模塊上任務槽空閑才分配Reduce任務。
(4)TaskTracker執行任務。TaskTracker每執行一個Map或Reduce任務,就啟動一個Java子進程運行。首先TaskTracker從HDFS讀取在編程客戶端有關的信息,再創建Java子進程執行用戶編寫的Map任務,運行后定期向內存緩存數據。當緩存數據大小超出限定時,Map任務將其存入從節點磁盤。
(5)TaskTracker執行Reduce任務。當Map完成任務,若TaskTracker模塊存在空閑Reduce槽,則TaskTracker從節點與JobTracker通信,JobTracker將該編程分配給Reduce的相應從節點。由于Reduce任務來源于各Map任務輸出,因此JobTracker可直接分配Reduce任務。
(6)完成編程運行。Reduce任務結束后,其結果存入用戶指定目錄。JobTracker依據各TaskTracker發送信息,對編程設置完成標記,同時向編程客戶端通知編程完成。需說明的是,客戶端在編程運行期間持續掌握運行進度信息。
本文為解決當前武警部隊后勤保障任務大量數據的分析、處理及儲存等問題,設計了基于云計算的后勤資源保障數據處理平臺,研究了基于Hadoop保障資源數據處理平臺架構、基于HDFS分布式后勤保障資源數據存儲平臺、基于MapReduce海量網絡保障資源數據處理平臺,為后勤保障平時任務的完成提供數據管理服務,為戰時應急保障決策提供數據支持。
[1]劉麗,司小磊,張瑩,彭弗楠.基于云計算的幼教資源管理平臺實現[J].電腦知識與技術,2014,4:12-17.
[2]杜忠暉,何慧,王星.一種Hadoop小文件存儲優化策略研究[J].智能計算機與應用,2015,3.
[3]田進華,張韌志.基于MapReduce數字圖像處理研究[J].電子設計工程,2014(15).
[4]徐鵬.云計算平臺作業調度算法優化研究[D].山東師范大學,2014.
[5]林智煜.基于海量高維圖像的大數據處理框架[J].電子科技大學,2014.
鞏青歌,教授,碩士生導師,研究方向:武警信息化研究,數據挖掘,數據庫。
楊曦(1991—),女,碩士研究生,研究方向:武警信息化研究。