武警工程大學研究生管理大隊 楊 曦
武警工程大學信息工程系 鞏青歌
基于云計算的后勤保障資源數(shù)據(jù)處理平臺研究與設計
武警工程大學研究生管理大隊 楊 曦
武警工程大學信息工程系 鞏青歌
近年隨著全軍信息化建設的迅速發(fā)展,后勤保障信息化勢在必行,當前每天產(chǎn)生于后勤保障相關的數(shù)據(jù)量巨大,既有傳統(tǒng)保障資源數(shù)據(jù),又有與部隊相關的文件資料、戰(zhàn)場態(tài)勢及流媒體中的信息等非結構化數(shù)據(jù),但目前沒有對這些保障資源實現(xiàn)集中、統(tǒng)一調(diào)配,許多資源數(shù)據(jù)沒有得到很好的利用。本文針對這一問題提出基于云計算的后勤保障數(shù)據(jù)處理平臺,對后勤保障工作相關數(shù)據(jù)進行采集、分析及處理,實現(xiàn)保障資源綜合管理,為部隊快速、高效地完成后勤保障任務提供可行性。
云計算;后勤保障;綜合管理
武警部隊擔負著維護國家安全和社會穩(wěn)定,保障人民安居樂業(yè)的神圣使命,是社會主義現(xiàn)代化建設的武裝保障。當前環(huán)境下,突發(fā)事件難以預料、情況復雜;搶險救災事發(fā)突然、形勢緊急,處置突發(fā)事件、擔負搶險救災和遂行維穩(wěn)反恐行動已成為武警部隊執(zhí)勤的重要任務,其中,后勤應急保障工作作為日常工作中的支撐,在當前環(huán)境下也變得越來越重要。
在大數(shù)據(jù)時代的今天,信息產(chǎn)業(yè)高速發(fā)展,武警部隊三級網(wǎng)系統(tǒng)中的服務器每天產(chǎn)生、更新、處理、存貯巨大的有價值資源數(shù)據(jù),面對如此龐大復雜的數(shù)據(jù),需要進行整理、辨別、運算,才能將隱含的、凌亂的、未知的及有潛在應用價值的可用信息轉化為進行決策的支撐、依據(jù),為決策支持提供數(shù)據(jù)依據(jù)。在本系統(tǒng)中擬利用云計算平臺對以上的數(shù)據(jù)進行處理、分析,實現(xiàn)保障資源數(shù)據(jù)的綜合、一體化服務,便于部隊完成平時保障任務,同時為戰(zhàn)時應急保障任務提供數(shù)據(jù)支持,為首長決策提供可靠的參考依據(jù)。
本文依據(jù)當前形勢和背景,設計了基于Hadoop的保障資源處理平臺,如圖1所示。首先,在數(shù)據(jù)組件、模型組件、互聯(lián)網(wǎng)組件以及獲取相關數(shù)據(jù)的互聯(lián)網(wǎng)關鍵節(jié)點部署數(shù)據(jù)獲取設備,對當前網(wǎng)絡中的流量數(shù)據(jù)進行采集。將收到的原始數(shù)據(jù)通過數(shù)據(jù)轉發(fā)的分類、合并、轉發(fā)等操作,最終上傳至Hadoop平臺的數(shù)據(jù)存儲區(qū)。為保證存儲數(shù)據(jù)的準確、全面、可靠性,首先使用HDPF[1](Hadoop-based Data Processing Framework)模塊對原始保障資源數(shù)據(jù)進行預處理,過濾其中錯誤、無用及殘缺數(shù)據(jù),將預處理后的初級數(shù)據(jù)存入HDFS中。由于這些實時數(shù)據(jù)來自互聯(lián)網(wǎng),絕大多數(shù)是半結構化、非結構化的數(shù)據(jù),本文針對以上特點,利用MapReduce技術進行分析處理。當決策者需要時,調(diào)用MapReduce分析處理存儲在HDFS中的海量資源數(shù)據(jù)及與資源保障相關的數(shù)據(jù),從中獲取有利用價值的分析結果例如受災地區(qū)的天氣、交通狀況,群體性事件中鬧事群體的規(guī)模、集結的范圍等戰(zhàn)場態(tài)勢數(shù)據(jù)。
圖1 基于Hadoop保障資源數(shù)據(jù)處理平臺架構
圖2 HDFS數(shù)據(jù)寫入流程
HDFS文件系統(tǒng)對海量后勤保障資源數(shù)據(jù)處理平臺提供據(jù)存取服務,包含NameNode、SecondNameNode和DataNode三類節(jié)點[2],具體功能:
(1)NameNode:就是主控制服務器,管理文件系統(tǒng)命名空間(Namespace)同時管理目錄和元數(shù)據(jù)。NameNode節(jié)點存儲與數(shù)據(jù)塊有關信息,如文件和數(shù)據(jù)塊、數(shù)據(jù)塊和DataNode節(jié)點之間的映射關系。
(2)Second NameNode:當NameNode節(jié)點發(fā)生故障時作為備用節(jié)點,可以對數(shù)據(jù)進行恢復,保證HDFS系統(tǒng)正常工作。它與NameNode節(jié)點保持定時通信,并對其元數(shù)據(jù)信息進行復制備份。
(3)DataNode:DataNode節(jié)點維護其存儲的數(shù)據(jù)塊管理工作,屬于從節(jié)點。HDFS將文件分塊存儲,每個數(shù)據(jù)塊默認為64MB,將它們存儲在不同的DataNode節(jié)點中。同時依據(jù)HDFS默認設置的3個副本,在多個DataNode備份相同數(shù)據(jù)塊。
當用戶需將文件寫入到HDFS系統(tǒng)中時,通過客戶端向NameNode節(jié)點申請包括寫入的各個DataNode節(jié)點的數(shù)據(jù)塊信息。NameNode依據(jù)申請分配節(jié)點,在HDFS文件系統(tǒng)的默認配置中認為所有機器在同一機架。數(shù)據(jù)寫入流程如圖2所示。
(1)客戶端調(diào)用DistributedFile-System類實例化對象,同時調(diào)用create方法生成新文件。
(2)DistributedFileSystem對象向NameNode節(jié)點發(fā)出RPC請求,NameNode節(jié)點依據(jù)用戶的權限判斷是否創(chuàng)建,若判斷不通過,NameNode則返回異常信息,寫入操作終止,否則繼續(xù)。
(3)DistributedFileSystem 封裝一個 FSDataOutputStream 對象,以備寫入數(shù)據(jù)到新文件中。
(4)通過客戶端用戶在新生成文件中寫入數(shù)據(jù)。FSDataOutputStream將數(shù)據(jù)切分為多個數(shù)據(jù)包,同時將它們組成數(shù)據(jù)流,以便之后寫入DataNode上的數(shù)據(jù)塊。
(5)FSDataOutputStream向NameNode請求數(shù)據(jù)存儲空間,即數(shù)據(jù)塊和DataNode節(jié)點信息。依據(jù)HDFS配置副本數(shù)決定DataNode節(jié)點數(shù)。
(6)FSDataOutputStream將數(shù)據(jù)包組成的數(shù)據(jù)流逐個寫入第一個DataNode節(jié)點,由該DataNode接著寫入第二個DataNode,當所有需要寫入的DataNode寫入完畢后停止。
(7)寫入完成的DataNode向源節(jié)點發(fā)送確認報文,證明完成寫入操作。若該過程某個DataNode節(jié)寫入失敗,NameNode分配新DataNode繼續(xù)寫入操作當數(shù)據(jù)包在指定DataNode完成寫入后,將其從數(shù)據(jù)流中刪除,認為一個數(shù)據(jù)包寫入操作完成。
(8)當所有數(shù)據(jù)包寫入完成,則本次用戶寫入數(shù)據(jù)流程結束。
MapReduce[3]最早由谷歌公司提出同時運用至網(wǎng)絡搜索服務的編程模型,采用分布式并行計算,可以處理TB甚至PB級別數(shù)據(jù),是Hadoop架構最核心技術之一。
MapReduce技術主要有Map函數(shù)和Reduce函數(shù)組成[4],以鍵值對(Key-Value)[5]作為輸入及輸出,用戶可根據(jù)需求自定義MapReduce函數(shù),系統(tǒng)在接收海量的與保障資源相關信息數(shù)據(jù)后,通過MapReduce框架對數(shù)據(jù)進行處理。以油料資源為例,該資源數(shù)據(jù)包括油庫的地理位置、油庫名稱、儲油量、日常消耗等數(shù)據(jù),可以用于保障任務中的油料供應點分析、資源調(diào)度點分析,以及調(diào)度路線規(guī)劃等各方面數(shù)據(jù)挖掘及分析。這些類型的數(shù)據(jù)采集一周或半月數(shù)據(jù)量將達到TB級別,使用普通服務器對其進行處理,將消耗大量時間,利用MapReduce技術可以在短時間內(nèi)高效完成。例如:加油站代號作為Key值,日消耗和供給量為Value值,可以快速統(tǒng)計該區(qū)域內(nèi)承擔業(yè)務最多的加油站等有用規(guī)律。
圖3 MapReduce框架運行流程
MapReduce技術為滿足用戶需求,提供了可編寫的編程模型,用戶根據(jù)所需編寫Map、Reduce函數(shù)后就可在Hadoop平臺中運行程序,得到分析結果。Hadoop平臺的MapReduce框架采用主從架構,由一個JobTracker主節(jié)點和多個TaskTracker從節(jié)點組成,JobTracker負責包括確定用戶提供編程的執(zhí)行順序、Map和Reduce任務的分配的編程調(diào)度。TaskTracker負責包括Map和Reduce任務以及推測性任務的執(zhí)行等主節(jié)點指定的任務。運行流程如圖3所示。
(1)用戶提交編程作業(yè)。用戶根據(jù)所需編寫MapReduce程序并運行,編程客戶端向JobTracker提交該編程相關信息,申請編程作業(yè)ID號,在客戶端驗證編程無誤后,將編程資源儲存至HDFS中,最后客戶端向JobTracker申請執(zhí)行編程。
(2)JobTracker初始化用戶編程。JobTracker接收編程后,創(chuàng)建與之相關數(shù)據(jù)及編程對象,然后JobTracker根據(jù)配置的調(diào)度算法,將編程放入編程棧中,以便后續(xù)分配。
(3)任務分配。從TaskTracker模塊定時向JobTracker發(fā)送信息,JobTracker程序棧如果存在待分配的編程,綜合收到的信息判斷是否向TaskTracker分配任務,當TaskTracker的Map任務槽有空余時,JobTracker依據(jù)策略向該節(jié)點分配合適Map任務。當JobTracker分配任務時,優(yōu)先考慮給TaskTracker分配Map任務,只有當TaskTracker模塊上任務槽空閑才分配Reduce任務。
(4)TaskTracker執(zhí)行任務。TaskTracker每執(zhí)行一個Map或Reduce任務,就啟動一個Java子進程運行。首先TaskTracker從HDFS讀取在編程客戶端有關的信息,再創(chuàng)建Java子進程執(zhí)行用戶編寫的Map任務,運行后定期向內(nèi)存緩存數(shù)據(jù)。當緩存數(shù)據(jù)大小超出限定時,Map任務將其存入從節(jié)點磁盤。
(5)TaskTracker執(zhí)行Reduce任務。當Map完成任務,若TaskTracker模塊存在空閑Reduce槽,則TaskTracker從節(jié)點與JobTracker通信,JobTracker將該編程分配給Reduce的相應從節(jié)點。由于Reduce任務來源于各Map任務輸出,因此JobTracker可直接分配Reduce任務。
(6)完成編程運行。Reduce任務結束后,其結果存入用戶指定目錄。JobTracker依據(jù)各TaskTracker發(fā)送信息,對編程設置完成標記,同時向編程客戶端通知編程完成。需說明的是,客戶端在編程運行期間持續(xù)掌握運行進度信息。
本文為解決當前武警部隊后勤保障任務大量數(shù)據(jù)的分析、處理及儲存等問題,設計了基于云計算的后勤資源保障數(shù)據(jù)處理平臺,研究了基于Hadoop保障資源數(shù)據(jù)處理平臺架構、基于HDFS分布式后勤保障資源數(shù)據(jù)存儲平臺、基于MapReduce海量網(wǎng)絡保障資源數(shù)據(jù)處理平臺,為后勤保障平時任務的完成提供數(shù)據(jù)管理服務,為戰(zhàn)時應急保障決策提供數(shù)據(jù)支持。
[1]劉麗,司小磊,張瑩,彭弗楠.基于云計算的幼教資源管理平臺實現(xiàn)[J].電腦知識與技術,2014,4:12-17.
[2]杜忠暉,何慧,王星.一種Hadoop小文件存儲優(yōu)化策略研究[J].智能計算機與應用,2015,3.
[3]田進華,張韌志.基于MapReduce數(shù)字圖像處理研究[J].電子設計工程,2014(15).
[4]徐鵬.云計算平臺作業(yè)調(diào)度算法優(yōu)化研究[D].山東師范大學,2014.
[5]林智煜.基于海量高維圖像的大數(shù)據(jù)處理框架[J].電子科技大學,2014.
鞏青歌,教授,碩士生導師,研究方向:武警信息化研究,數(shù)據(jù)挖掘,數(shù)據(jù)庫。
楊曦(1991—),女,碩士研究生,研究方向:武警信息化研究。