孫小涓 石濤 胡玉新 佟繼周 李冰 宋峣



摘 要:針對空間科學衛星探測數據的實時處理要求越來越高的問題,提出一種基于流計算框架的空間科學衛星數據實時處理方法。首先,根據空間科學衛星數據處理特點對數據流進行抽象分析;然后,對各處理單元的輸入輸出數據結構進行重新定義;最后,基于流計算框架Storm設計數據流處理并行結構,以適應大規模數據并行處理和分布式計算的要求。對應用該方法開發的空間科學衛星數據處理系統進行測試分析,測試結果顯示,在相同條件下數據處理時間比原有系統縮短了一半;數據局部性策略比輪詢策略具有更高的吞吐率,數據元組吞吐率平均提高29%。可見采用流式計算框架能夠大幅縮短數據處理延遲,提高空間科學衛星數據處理系統的實時性。
關鍵詞:流式計算;數據流;Storm;空間科學衛星;數據處理
中圖分類號: TP319專用應用軟件
文獻標志碼:A
Abstract: Concerning the increasingly high real-time processing requirement of space science satellite observed data, a real-time processing method of space science satellite data based on stream computing framework was proposed. Firstly, the data stream was abstractly analyzed according to the data processing characteristics of space science satellite. Then, the input and output data structures of each processing unit were redefined. Finally, the parallel data stream processing structure was designed based on the stream computing framework Storm to meet the requirements of parallel processing and distributed computing of large-scale data. The developed system for space science satellite data processing applying with this method was tested and analyzed. The results show that the data processing time is half of that of the original system under same conditions and the data localization strategy has higher throughput than round-robin strategy with the data tuple throughput increased by 29% on average. It can be seen that the use of stream computing framework can greatly shorten the data processing delay and improve the real-time performance of the space science satellite data processing system.
Key words: stream computing; data stream; Storm; space science satellite; data processing
0 引言
2015年12月17日,在中國科學院空間科學先導專項[1]支持下的首顆空間科學衛星發射成功,到目前為止已先后發射了暗物質粒子探測衛星[2]、實踐十號衛星[3]、量子科學實驗衛星[4]、硬X射線調制望遠鏡(Hard X-ray Modulation Telescope, HXMT)[5]4顆空間科學系列衛星,取得了國際領先的多項重大科學成果。在一次衛星過境中,地面應用系統接收到衛星原始數據,經過幀同步、虛擬信道分離、源包提取、驗證排序等處理,生成源包級數據產品。經過一系列的數據格式轉換,生成不同要求的各級數據產品,并立即分發給科學家團隊進行更深入的研究分析。
空間衛星數據處理的過程不間斷、數據吞吐率高并且數據處理延遲低,因此具有流式計算的特征。隨著衛星載荷探測能力的增強和衛星地面接收能力的提高,單次衛星下傳數據量急劇增長,如已在軌運行的暗物質衛星單次下傳數據量約5GB,未來規劃中的先進天基太陽天文臺(Advanced Space-based Solar Observatory, ASO-S)衛星單次下傳數據量超過100GB,由于產品生成分發時效性要求仍為分鐘級不變,地面應用系統面臨大數據實時處理的挑戰。一方面,科學事件的發現和研究,要求快速完成大規模衛星探測數據處理。例如在2017年8月17日20時美國的激光干涉引力波天文臺LIGO(Laser Interferometer Gravitational-wave Observatory)和歐洲的引力波探測器Virgo共同探測到引力波事件[6],HXMT衛星地面處理系統以分鐘級響應速度完成產品快速處理,科學家于凌晨在伽馬射線暴協調網絡上發出測量結果[7],為探測首例由兩顆中子星合并產生的引力波事件發揮了重大作用。雖然原有系統有力支撐了科學發現,但面對后續衛星急劇增長的數據處理負載,數據處理系統的吞吐率需要成倍增長。另一方面,載荷工程數據和平臺工程數據對確認衛星和載荷的運行狀態至關重要,雖然工程數據與載荷科學數據獨立采用不同源包記錄,但由于載荷科學數據的數據量占絕大部分,系統工程數據處理不能先于科學數據進行處理,延長了對衛星載荷運行狀態的分析判斷,急需將科學數據和工程數據進行并行處理。
原有空間科學衛星數據處理系統[8]采用數據驅動的批處理系統架構,首先進行從衛星原始數據到源包數據的預處理,生成源包數據文件作為后續處理流程的輸入數據,然后利用機群作業調度系統將處理流程在集群上調度執行。現有的系統雖然采用了內存計算索引結構的方法,加快了生成源包數據的過程,但是生成1A級產品前無法對一次下傳數據進行并行處理,限制了實時性和系統擴展性的進一步提高。而且生成源包數據文件和輸出1A級產品也占用了后續數據處理時間。
針對以上問題,本文提出了一種基于流式計算框架的空間科學衛星數據實時處理方法,實現對源包級數據處理和后續數據處理的并行優化,對數據流進行抽象分析和重新定義,設計任務拓撲結構,并完成系統的實現,最后對系統實時性和吞吐率指標進行測試分析和評價。
1 流式計算技術
流式計算[9]是指將到達的數據流在內存中實時計算,因此流式計算具有低延遲、高吞吐率且持續運行的特點。近年來成為一個研究熱點,廣泛應用于互聯網、交通、金融、醫療等領域,也應用于天文觀測數據處理,衛守林等[10]提出了一種基于流式計算系統Spark Streaming的明安圖射電頻譜日像儀實時數據處理方法,提高了地基天文觀測數據處理的時效性。
常見的流式計算框架有Twitter Storm[11]、Spark Streaming[12]、Yahoo S4[13]等。Storm[14-15]是一個分布式開源實時計算系統,它采用主從式結構如圖1所示,由一個主節點(Nimbus)、多個從節點(Supervisor)構成。通過分布式應用程序協調服務(ZooKeeper)[16]同步節點狀態信息,每個節點按需創建工作進程(Worker),用于計算任務的執行。一個完整的任務拓撲往往由多個從節點上的工作進程協調執行。一個工作進程中會有多個執行器(Executor),每個執行器對應一個線程,又可對應一個或多個任務(Task),任務負責數據的具體計算,即用戶所實現的噴口(Spout)或螺栓(Bolt)實例。
Storm的計算模型[17]如圖2所示,由拓撲(Topology)、元組(Tuple)、流(Stream)、噴口(Spout)、螺栓(Bolt)和任務(Task)構成,任務拓撲是由一系列噴口和螺栓組成的有向無環圖,元組定義了噴口和螺栓之間傳遞消息的數據單元,而流是無界的元組序列,源源不斷地傳遞元組就構成了流。通常噴口獲取數據源并不停地發送數據給螺栓,螺栓接收數據進行相應的處理。噴口和螺栓上執行的具體操作為任務,可以靈活設置每個噴口或螺栓上并行執行的任務數。
2 空間科學衛星數據流分析
空間科學衛星數據采用國際空間數據系統咨詢委員會(Consultative Committee for Space Data Systems, CCSDS)[18-19]標準,按虛擬信道標識符和應用過程標識符實時分路不同數據,實現同一物理信道上時分復用傳送多種數據的要求。空間科學衛星數據使用應用過程標識符(APplication IDentifier, APID)對衛星數據采集和傳輸過程中不同數據源設備進行區分,構成可變長度的面向應用的數據包,稱為“源包”。源包是空間科學衛星數據處理的基本數據結構。對衛星數據采集過程中不同數據源設備用APID進行區分,構成可變長度的源包,過長的包再分成段,截成定長后加上幀頭和幀尾構成數據傳輸幀進行傳輸。針對工程參數區回放數據、科學數據區回放數據和實時工程參數數據等,數據傳輸幀劃分不同虛擬信道,使用虛擬信道標識符(Virtual Channel IDentifier, VCID)進行區分。因此,空間科學衛星數據具有傳輸幀和源包兩層數據結構。
空間科學衛星數據流處理過程從接收到衛星原始數據文件開始,對一次衛星過站的數傳原始數據進行幀同步,從不同虛擬信道的一個或多個傳輸幀的數據域中獲得源包數據,按照APID區分源包進行源包提取,經過驗證排序生成按APID拆分的1A級源包數據產品。在1A級產品的基礎上,進行1B、1C、1D、1Q級產品生成。以暗物質衛星1A/1C級產品處理流程為例,如圖3所示,數據處理步驟分析如下:
1)幀同步:從數傳原始碼流中按位查詢同步碼,確定每個傳輸幀起始位置。
2)解擾:以傳輸幀為處理單位,對除同步碼以外的數據進行位運算。
3)RS(Reed-Solomon)譯碼:以傳輸幀為處理單位,對傳輸中的誤碼進行糾正。
4)虛擬信道分離:以傳輸幀為處理單位,解析傳輸幀頭信息,按照VCID進行源包提取。
5)源包數據提取:以源包為處理單位,解析源包包頭,按照APID進行源包數據域提取。
6)1A產品生成:以分組源包數據域為處理單位,按照源包計數順序以約定格式輸出文件,生成不同APID的1A級源包數據產品。
7)科學數據源包解析:以分組科學數據源包數據域為處理單位,通過解析載荷工作模式,提取不同模式下科學數據幀數據。
8)1C產品生成:以科學數據幀數據為處理單位,按照一定格式要求,生成不同載荷工作模式的1C級科學數據包產品。
3 基于流式計算的處理方法
3.1 數據流定義
衛星數據具有傳輸幀和源包兩層數據結構,根據衛星數據實時處理數據流不同處理步驟要求,以傳輸幀和源包為數據處理基本單元,在此基礎上分析數據流轉換過程,定義可并行處理的數據單元或元組,依次為無格式幀數據流、傳輸幀數據流、源包數據流和分組科學數據源包數據流。以暗物質衛星數據為例,分別定義Storm計算模型元組的數據格式,如表1~5所示。
3.2 處理組件定義
在定義數據元組后,采用Storm流式計算框架對原有數據處理軟件進行改造,重新定義數據處理組件。對圖3的處理流程各環節進行劃分,按傳輸幀類型、源包類型和科學數據幀模式,數據流應并行處理,因此獨立定義以傳輸幀、源包和科學數據幀為輸入的虛擬信道分離、1A產品生成和1C產品生成組件,用于多任務并發執行。但是處理組件間交換數據將帶來元組生成、元組收發等系統開銷,延長了處理時間,所以在獲得并行加速的同時應盡量減少組件數,將幀同步、解擾和RS譯碼環節合并為一個組件。綜合并發要求和系統開銷兩個因素,對空間科學衛星數據流處理組件進行定義,如圖4(a)所示,分別為幀同步組件、虛擬信道分離組件、源包數據提取組件、1A產品生成組件、科學數據源包解析組件和1C產品生成組件,記為Spout、Bolt1、Bolt2、Bolt3、Bolt4和Bolt5。
3.3 拓撲結構設計
改進系統將數據處理負載分解為1個噴口組件和5個螺栓組件,原有的1A產品生成軟件變為6個處理單元,對于耗時較長的螺栓組件還可增加并行任務,進而縮短處理時間。以圖4(b)拓撲圖為例,Bolt1、Bolt3和Bolt5的并行任務數為4、14和4,對應處理不同的傳輸幀、源包和科學數據幀類型,其他組件也可以多任務并行處理。系統結構從原來的單進程處理模式轉變為多任務并行處理模式,并行度可動態調整。
4 實驗結果與性能分析
4.1 實驗方法
本文搭建了測試驗證環境,對暗物質衛星1A產品生產流程進行測試驗證。使用暗物質衛星下傳原始數據制作測試數據,對原始數據進行虛擬信道解析后生成工程數據幀和科學數據幀,然后將兩種幀類型數據合并,生成測試數據。測試數據為5GB,大小為暗物質衛星一次下傳數據量,內容包含多種類型源包數據。測試采用文件回放方式模擬衛星數據接收過程。實驗環境采用4臺高性能計算服務器節點(2個12核Intel Xeon X5670 CPU,主頻2.93GHz,內存36GB,2塊60GB SSD磁盤),通過40Gb高速專用網絡連接,服務器安裝Red Hat Enterprise Linux 7.2操作系統,將幀同步組件、虛擬信道分離組件、源包數據提取組件、1A產品生成組件部署到每個節點。
為了分析數據流實時處理的優化效果,實驗在單個節點和4個節點下分別對數據處理時間和吞吐率進行測試。在單節點測試中,對數據元組處理延遲和數據處理總時間指標進行測試,調整任務并行度,對并行優化效果進行測試分析。在多節點測試中,模擬多個衛星數傳任務,在不同任務調度策略下測試系統吞吐率指標。
4.2 處理時間
在單個節點上測試1A產品生成流程的執行時間,與相同條件下原有系統的測試數據進行比較,同時通過設置每個組件的任務數,如表6所示,測試無并行任務和有并行任務時數據處理時間,并對不同并行度下測試數據進行比較。
數據元組處理延遲分布情況如圖5所示。由圖5可知,單任務的數據元組平均處理延遲為0.92s,多任務的數據元組平均處理延遲降低到0.6s。在單任務測試中,處理延遲大于0.8s的元組占54%,處理延遲小于0.2s的元組占31%,而在多任務測試中,大于0.8s的比重降低至26%,小于0.2s的比重增加至45%。在多任務情況下,超過70%的數據元組在0.8s內完成處理,數據元組得到了更快的處理。
在原有系統、改進系統單任務和改進系統多任務三種情況下,對數據處理時間測試結果進行對比。在相同條件下,采用流計算框架的改進系統,在單任務情況下處理時間為86.6s,比原有系統處理時間120.3s縮短了約28%。虛擬信道分離組件和1A產品生成組件采用多任務并行處理,較為耗時的幀同步組件作為噴口組件仍為單任務,測得處理時間為60.1s,比單任務情況縮短了約31%。改進系統數據處理時間比原有系統總體縮短了約50%。
實驗結果表明,通過應用本文方法,原有系統數據處理時間大幅縮短,而且通過增加耗時的螺栓組件的并行任務數,縮短了數據元組處理等待時間,從而能夠進一步降低數據處理時間。
4.3 吞吐率
為評價多節點環境下的系統吞吐率,測試模擬了來自不同接收站的多個數據傳輸任務,測試負載為4個衛星數據處理流程,主節點根據調度策略將任務分配在3個計算節點上,通過測試所有節點在采樣時段內組件處理的數據元組數,反映在一定調度策略下數據處理集群的吞吐率指標。
由于系統吞吐率指標與集群調度策略相關,本文選擇了輪詢調度方法和數據局部性調度方法分別進行測試。輪詢調度按照任務啟動順序依次分配計算節點,數據局部性調度在資源滿足需求的情況下,將具有數據依賴的任務分配在相同節點。測試方法是記錄每秒各節點所有組件處理的數據元組數,計算數據處理集群每秒所處理的數據元組總和,并對平均值進行比較。圖6用柱狀圖按采樣次數分別顯示了四個組件的數據元組處理數速率,并用虛線表示采樣時段內的平均值。測試數據顯示,數據局部性策略比輪詢策略獲得更高吞吐率,平均數據元組吞吐率(每秒處理數據元組數)提高29%。
實驗結果表明,對空間科學數據處理這種數據密集型計算類型,系統任務調度需要考慮數據局部性,避免數據在計算節點間轉發,減少數據傳輸時間,從而縮短處理延遲,提高系統吞吐率。
5 結語
針對空間衛星數據處理面臨的實時性問題,本文提出了一種基于流式計算框架的空間科學衛星數據實時處理方法,設計實現了數據并行處理系統,并對處理時間和吞吐率的優化效果進行了測試分析。以暗物質衛星為例介紹了數據處理優化方法,該方法對HXMT衛星及后續衛星數據處理過程也適用。作為從傳統軟件結構向流式計算結構改造一種方法,本文詳細描述了數據流定義、處理組件定義和任務拓撲設計的一般原則和方法,下一步將對衛星數據通用流式計算模型等方面進行研究。
參考文獻 (References)
[1] 中國科學院國家空間科學中心.空間科學任務運行網[EB/OL].(2015-12-31)[2018-07-31]. http://www.smoc.ac.cn/. (National Space Science Center, Chinese Academy of Sciences. Space science mission operation network [EB/OL]. (2015-12-31)[2018-07-31]. http://www.smoc.ac.cn/.)
[2] 中國科學院.暗物質粒子探測衛星工程[EB/OL].(2015-12-31)[2018-07-31].http://www.cas.cn/zt/kjzt/awzlztcwxgc/.(Chinese Academy of Sciences. DAMPE satellite engineering [EB/OL]. (2015-12-31)[2018-07-31]. http://www.cas.cn/zt/kjzt/awzlztcwxgc/.)
[3] 中國科學院.實踐十號返回式科學實驗衛星工程[EB/OL].(2016-12-31)[2018-07-31].http://www.cas.cn/zt/kjzt/sjshkxsywx/.(Chinese Academy of Sciences. SJ-10 recoverable scientific experiment satellite engineering [EB/OL]. (2016-12-31)[2018-07-31]. http://www.cas.cn/zt/kjzt/sjshkxsywx/.)
[4] 中國科學院.量子科學實驗衛星工程[EB/OL].(2016-12-31)[2018-07-31].http://www.cas.cn/zt/kjzt/lzwx/.(Chinese Academy of Sciences. QUESS satellite engineering [EB/OL]. (2016-12-31)[2018-07-31]. http://www.cas.cn/zt/kjzt/lzwx/.)
[5] 中國科學院.硬X調制望遠鏡衛星[EB/OL].(2017-12-31)[2018-07-31].http://www.cas.cn/zt/kjzt/yxsxtzwyj/.(Chinese Academy of Sciences. HXMT satellite [EB/OL]. (2017-12-31)[2018-07-31]. http://www.cas.cn/zt/kjzt/yxsxtzwyj/.)
[6] ABBOTT B P, ABBOTT R, ABBOTT T D, et al. GW170817: observation of gravitational waves from a binary neutron star inspiral [J]. Physical Review Letters, 2017, 119(16): 161101.
[7] The Gamma-ray Coordinates Network. Insight-HXMT observation [EB/OL]. (2018-02-05)[2018-07-31]. https://gcn.gsfc.nasa.gov/gcn3/21593.gcn3/.
[8] 孫小涓,石濤,李冰,等.空間科學衛星快速數據處理方法[C]//2017全國高性能計算學術年會論文集.北京:中國計算機學會,2017:438-443.(SUN X J, SHI T, LI B, et al. A rapid data processing method for space science satellites [C]// Proceedings of the 2017 HPC China. Beijing: CCF, 2017: 438-443.)
[9] 孫大為,張廣艷,鄭緯民.大數據流式計算:關鍵技術及系統實例[J].軟件學報,2014,25(4):839-862.(SUN D W, ZHANG G Y, ZHENG W M. Big data stream computing: technologies and instances [J]. Journal of Software, 2014, 25(4): 839-862.)
[10] 衛守林,劉鵬翔,王鋒,等.基于Spark Streaming的明安圖射電頻譜日像儀實時數據處理[J].天文研究與技術,2017,14(4):421-428.(WEI S L, LIU P X, WANG F, et al. Real-time data processing in Mingantu ultrawide spectral radio heliograph based on Spark Streaming [J]. Astronomical Research and Technology, 2017, 14(4): 421-428.)
[11] SIMONCELLI D, DUSI M, GRINGOLI F,et al. Scaling out the performance of service monitoring applications with BlockMon [C]// Proceedings of the 2013 International Conference on Passive and Active Measurement, LNCS 7799. Berlin: Springer, 2013: 253-255.
[12] 韓德志,陳旭光,雷雨馨,等.基于Spark Streaming的實時數據分析系統及其應用[J].計算機應用,2017,37(5):1263-1269.(HAN D Z, CHEN X G, LEI Y X, et al. Real-time data analysis system based on Spark Streaming and its application [J]. Journal of Computer Applications, 2017, 37(5): 1263-1269.)
[13] NEUMEYER L, ROBBINS B, KESARI A, et al. S4: distributed stream computing platform [C]// Proceedings of the 2010 IEEE International Conference on Data Mining Workshops. Washington, DC: IEEE Computer Society, 2010: 170-177.
[14] LI F, DAI L, JIANG Z, et al. Single-pass clustering algorithm based on Storm [J]. Journal of Physics: Conference Series, 2017, 806: 012017.
[15] 丁維龍,趙卓峰,韓燕波.Storm:大數據流式計算及應用實踐[M].北京:電子工業出版社,2015:110-137.(DING W L, ZHAO Z F, HAN Y B. Storm: Big Data Stream Computing and Application Practice [M]. Beijing: Publishing House of Electronics Industry, 2015: 110-137.)
[16] CHINTAPALLI S, DAGIT D, EVANS R, et al. PaceMaker: when ZooKeeper arteries get clogged in storm clusters [C]// Proceedings of the 9th IEEE International Conference on Cloud Computing. Piscataway, NJ: IEEE, 2017: 448-455.
[17] KARUNARATNE P, KARUNASEKERA S, HARWOOD A. Distributed stream clustering using micro-clusters on Apache Storm [J]. Journal of Parallel & Distributed Computing, 2017, 108: 74-84.
[18] NASA. Space packet protocol: CCSDS 133.0-B-1 [S]. Washington, DC: CCSDS, 2003-09.
[19] 馬苗,朱巖.基于CCSDS標準的衛星數據處理軟件設計[J].電子設計工程,2015,23(1):16-20.(MA M, ZHU Y. Design of satellite data processing software based on CCSDS [J]. Electronic Design Engineering, 2015, 23(1): 16-20.)