陳文青,王建斌,王學軍
(1.海軍裝備研究院,北京102249;2.復雜艦船系統仿真重點實驗室,北京102249)
復雜系統效能評估支撐平臺
陳文青1,2,王建斌1,王學軍1
(1.海軍裝備研究院,北京102249;2.復雜艦船系統仿真重點實驗室,北京102249)
復雜系統的效能評估面臨著評估數據量大、評估計算實時性要求高、評價規(guī)則靈活多變等問題,選擇Spark分布式計算平臺作為海量數據處理的技術途徑,可以有效解決大數據實時處理問題?;赟park技術,結合AppWEE(武器效能評估支撐平臺)構建復雜系統效能評估的支撐平臺,可以解決數據處理規(guī)模以及數據處理的實時性問題,并且可以兼顧評價準則設置靈活性,這樣就有效地解決了復雜系統評估問題。
效能評估,大數據,Spark
當今,效能評估已經廣泛應用于從單裝到體系的武器裝備論證研究中,效能評估技術正面臨著研究對象固有復雜性提出的挑戰(zhàn)。在復雜系統的效能評估中主要有3個特點:數據量大、實時處理、準則靈活。即:①數據量大:當前單次仿真實驗產生的數據可達到TB,傳統關系數據庫的存儲方法已經無法滿足要求,需要采用NoSQL技術,使用大數據分析處理方法進行存儲與分析;②實時處理:部分仿真/半實物仿真實驗周期較長,等待實驗結束才進行離線式分析處理無法滿足決策的時效性要求,因此,需要采用實時評估方式,采用數據流處理方法,支持決策者實時獲得關鍵指標的動態(tài)評估結果;③規(guī)則靈活:針對不同評估對象,需要有針對性地構建評價指標體系,針對不同指標給出特定的計算規(guī)則,選用不同分析評估算法,靈活構建指標計算流程,只有這樣才能夠滿足仿真結果分析處理與評估的要求。指標體系中的底層指標稱為性能指標,中間層級的指標稱為效能指標。性能指標根據實驗結果數據計算獲得,效能指標通過邏輯運算或多屬性決策分析方法獲得。
面對以上特點,本文探討了如何構建基于Spark平臺的大數據分析處理技術的開展復雜系統效能評估,可為復雜系統的效能評估提供有效技術解決途徑。Spark平臺采用數據內存化管理提高了數據訪問速度,同時采用一套有向無環(huán)圖(DAG)的調度機制,用于提高批處理與流式處理的運算調度,通過以上措施Spark顯著提升了大數據處理的速度,同時為大數據的批處理、流式處理提供了統一平臺,此外在Spark之上還提供了機器學習庫、圖計算庫為機器學習與數據挖掘提供了技術途徑。
1.1 數據量大
由于需要解決海量數據的分析處理,因此,平臺選擇目前最具潛力的云計算技術Spark作為分析計算支撐框架。Spark是伯克利大學AMP lab(Algorithms Machines People,Laboratory)開源的通用的并行計算框架。Spark生態(tài)系統組成如圖1所示。Spark具有以下特點:
圖1 Spark生態(tài)系統
(1)采用RDD,在內存中完成計算。RDD(Resilient Distributed Dataset,彈性分布數據集)是Spark對分布式內存進行的抽象,Spark以操作本地集合的方式來操作分布式數據集。RDD可以通過從文件系統輸入獲得,或通過其他RDD變換獲得,通過變換獲得的RDD自動稱為源RDD的子RDD,源RDD稱為新生成RDD的父RDD。針對RDD可以進行“轉換”或“操作”兩種不同計算。轉換包括map、filter、groupBy、Join等;操作包括count、collect、save等。轉換處理后,得到的結果依然是RDD。
(2)作業(yè)調度更加合理。Spark通過DAG(Directed Acyclic Graph,有向無環(huán)圖)進行作業(yè)調度,當一個RDD的操作被觸發(fā)時,系統會通過DAG作業(yè)調度遍歷整個RDD依賴鏈,根據RDD的依賴關系,生成一系列調度階段,為當前可運行Stage生成一個作業(yè),等待完成后再進行下一個調度階段,這樣既保證了盡可能多的Stage被執(zhí)行,又保證了計算的有序性。
(3)運行方式更為多樣。Spark可以在Hadoop的資源管理系統YARN上運行,也可以在Spark自己的資源管理系統Mesos上運行,還可以在本機獨立運行。
(4)更加易用。Spark支持通過Scala語言或Java語言編寫計算程序。Scala語言是一種運行在JVM上的集成面向對象與函數式編程特征的語言,采用Scala可使得MapReduce的開發(fā)更為簡潔。建立在Spark之上的SparkR模塊提供了與R語言的交互功能,可以在R語言內直接使用Spark的分布式計算能力。
(5)生態(tài)系統完備,代表了大數據的發(fā)展方向。Spark目前擁有包括Spark SQL(支持關系化查詢)、Spark Stream(支持實時數據處理)、MLlib(支持機器學習)、GraphX(支持并行圖計算)在內的一系列模塊,獲得各大云計算公司的廣泛關注。實際使用過程中,針對特定運算采用Scala或Python編寫分析評估算法。評估執(zhí)行引擎將調用Spark進行分析處理。計算完成后再通過HDFS獲得分析結果,根據官網給出的測試結果,Spark的執(zhí)行效率是Hadoop的120倍。
1.2 實時評估
為了在實驗過程中為決策人員實時提供評估結果,平臺提供了實時評估功能。實時評估與離線評估的區(qū)別在于,實時評估基于數據流進行計算,每次僅需要收集時間片內新產生的數據,并與前次結果進行融合獲得新的結果,如統計戰(zhàn)損率,只需要獲得當前時間片內被擊毀的實體個數、前一時刻累計的毀傷實體個數、仿真起始時刻我方的實體總數,即可計算出當前時刻的戰(zhàn)損率。實時評估需要關注監(jiān)控界面設計與實時評估計算引擎兩部分。
圖2 實時評估監(jiān)控界面
圖3 Spark流式計算示意圖
實時評估監(jiān)控界面如圖2所示。實時評估監(jiān)控界面需要支持用戶自定義功能,即用戶自主選擇所關心的要素,并將這些要素對應的控件排布為所需的監(jiān)控界面。系統為每個計算流程中的算子都提供了輸入參數配置界面、輸出參數配置界面,用戶可以再監(jiān)視界面內自由選擇所關心的指標或中間結果,將它們所對應算子的參數輸入輸出界面拖入監(jiān)視界面即可完成實時評估監(jiān)控界面的設計。
Spark流式計算示意圖如圖3所示。Spark Steam是建立在Spark之上的流式計算框架,將每個時間片(0.5 s~2 s)內由各種Spark Stream數據源產生的數據作為新的RDD,每輪計算中都按照DAG調度算法進行調度操作。評估執(zhí)行引擎在每一輪計算中,將實時產生的大樣本數據交于Spark Stream進行分析處理,在運算結束后通過HDFS獲得結果,并提交監(jiān)控界面進行可視化展示。
1.3 規(guī)則設計
復雜系統效能評估存在分層化與流程化的特點。分層化指需要為評估對象的各級評價指標建立層次,從原始評估數據逐級向上計算指標的評估結果。流程化指評估分析存在某些可遵循的流程:如獲取數據、數據過濾、分析計算、結果記錄與呈現。在效能評估中采用指標體系與指標計算流程分別解決層次化與流程化的問題。指標體系構建示意圖如圖4所示。在指標體系的構建過程中,需要對指標類型、量綱進行定義,指標類型包括成本型、效益型、固定型、偏離型、固定區(qū)間型、偏離區(qū)間型。系統提供可視化指標體系構建環(huán)境,可以創(chuàng)建各層級指標并定義指標間的依賴關系。
圖4 指標體系構建示意圖
圖5 指標計算流程示意圖
指標計算流程示意圖如圖5所示。指標計算流程明確了一個或多個同級相鄰指標的計算規(guī)則。在整個指標體系中,可以為一個或多個指標創(chuàng)建計算流程。被計算的指標稱為計算流程中的輸出指標,輸出指標所依賴的指標稱為輸入指標。指標計算流程由各類算子和算子之間的參數鏈接組成。
針對復雜系統效能評估的關鍵問題,采用Spark解決了數據量大和實時評估中的流式處理問題;采用AppWEE解決了實時評估中監(jiān)控界面設計和規(guī)則靈活設計問題。進一步,初步確定了復雜系統效能評估支撐平臺的總體框架。
2.1 平臺功能和組成
效能評估支撐平臺可為仿真系統的數據分析與指標綜合評估提供一體化的技術解決途徑,為武器裝備論證、研制、測試和使用等提供效能評估的基礎工具平臺,從而有效解決復雜系統評估中面對的評估數據量龐大、分析評估時效性強、評估規(guī)則靈活的問題。平臺設計過程中采用標準化、組件化的設計思路,提升系統功能的重用性,滿足針對不同系統的評估需求。效能評估支撐平臺組成圖如圖6所示。在平臺基礎上提供部分專業(yè)分析插件,包括復雜網絡分析、電子對抗效能分析、毀傷效能分析等。
圖6 效能評估支撐平臺組成圖
圖7 效能評估支撐平臺使用流程
2.2 平臺使用流程
效能評估支撐平臺使用流程如圖7所示。效能評估支撐平臺使用流程包括建立指標體系、設計評估方案、選取與定制評估算法、采集與處理數據、創(chuàng)建評估任務、選擇評估模式、執(zhí)行評估計算、更新監(jiān)控界面、生成評估報告等步驟。
(1)創(chuàng)建指標體系。為指標設定層級并建立指標間的依賴關系,并對不宜直接度量的指標進行分解。最終建立起由效能指標(MOE)和性能指標(MOP)構成的指標體系。
(2)設計評估方案。評估方案由指標體系和各個指標的指標計算流程組成。每個指標計算流程是一個由輸入指標、輸出指標、樣本數據、各類評估方法組成的計算流程。
(3)選取/定制評估算法。平臺提供了AHP、模糊綜合評估法、灰色白化權函數聚類、TOPSIS、DEA、ADC等典型評估算法,創(chuàng)建評估流程時使用的評估算法可以從評估算法庫中直接選取,也可通過公式、腳本語言、算法插件3種方式對現有評估方法庫進行擴展,構造出滿足專業(yè)需求的評估方法。
(4)評估數據采集與處理。評估樣本數據包括各類主客觀數據,系統能夠使用多種來源的數據,可與Oracle、SQLServer、MySQL、MongoDB等多種數據庫適配。所有采集獲得的數據以數據集的形式保存,當需要執(zhí)行分布式計算時,可通過Spark平臺的Spark SQL接口,將數據集存儲于HDFS分布式文件系統中。
(5)創(chuàng)建評估任務。評估任務是在已建立評估方案的基礎上,針對若干明確的評估對象進行的一次具體評估活動。評估對象可以是具體裝備的綜合效能,也可以是不同作戰(zhàn)方案的執(zhí)行效果。評估任務使用的數據來自數據預處理模塊從各數據源獲得的數據。在構建評估任務后,需要為計算流程中的各算子參數配置數據。數據包括動態(tài)數據與靜態(tài)數據,動態(tài)數據僅指定數據來源、查詢語句與查詢參數,需要在評估執(zhí)行時自動從數據源獲得最新的樣本數據。靜態(tài)數據則直接使用數據預處理環(huán)節(jié)已經采集到的數據。
(6)選擇評估模式。評估模式包括離線評估與實時評估兩種模型。離線評估模式下,根據評估方案設計的計算規(guī)則執(zhí)行一次評估計算,對運算時間沒有要求。實時評估模式下,則需要在一定的監(jiān)控刷新率下,反復執(zhí)行評估計算,并實時獲得計算結果。
(7)執(zhí)行評估計算。按照評估方案自底向上逐層計算,獲得指標體系中所有指標關于每一個評估對象的評估結果。在評估任務正確執(zhí)行后,用戶能夠通過多種可視化手段,查看各評估對象各指標的評估結果。在離線評估模式下,可基于評估結果進行敏感性分析、全壽命周期分析、指標相關性及獨立性分析。
(8)更新監(jiān)控界面。在實時評估啟動執(zhí)行之前,用戶可根據監(jiān)控要求,選擇監(jiān)控控件,并將指標分值、中間計算結果與監(jiān)控控件綁定。實時評估過程中,根據評估計算結果不斷更新監(jiān)控界面。
(9)生成評估報告。根據評估結果生成評估報告,評估報告中包含指標體系、評估方案、評估結果等信息。評估報告采用文字、圖表顯示各類信息。
Spark大數據處理技術為復雜系統效能評估提供了新的解決途徑,同時利用已購買的AppWEE,二者結合可以在批處理模式下進行離線分析,在流處理模式下進行實時評估,有效解決了海量數據分析問題;通過評價準則體系的分層化與流程化,做到了評估規(guī)則的靈活設計。
[1]高彥杰.Spark大數據處理:技術、應用與性能優(yōu)化[M].北京:機械工業(yè)出版社,2014.
[2]Holden K,余璜,譯.Spark快速數據處理[M].北京:機械工業(yè)出版社,2014.
[3]孫大為,張廣艷,鄭緯民.大數據流式計算:關鍵技術及系統實例[J].軟件學報,2014,25(4):839-862.
[4]蔣麗萍,蔡驊.武器系統效能評估與仿真研究[D].南京:南京理工大學,2010.
Effectiveness Evaluation for Complicated System Based on Spark Plat
CHEN Wen-qing1,2,WANG Jian-bin1,WANG Xue-jun1
(1.Naval Academy of Armament,Beijing 102249,China;2.Key Laboratory of Complex Ship System Simulation,Beijing 102249,China)
Effectiveness evaluation for complex systems faces with calculation problem of large amount of data,high real-time requirements and flexible evaluation rules.The Spark distributed computing platform is selected as a way to real-time processing massive data effectively.Based on the Spark plat,a effectiveness evaluation plat for complex system is constructed for solve scale data processing and real-time issues of data processing,and can be both evaluation criteria set flexibility,which can effectively solve the problem of complex system evaluation.
effectiveness,evaluation,mass data spark
TP31
A
1002-0640(2015)12-0152-04
2014-11-17
2015-01-09
陳文青(1977-),男,福建福州人,博士,副研究員。研究方向:裝備論證、仿真評估。