基于流式计算的空间科学卫星数据实时处理

2019-08-27 02:26孙小涓石涛胡玉新佟继周李冰宋峣
计算机应用 2019年6期
关键词:数据流数据处理

孙小涓 石涛 胡玉新 佟继周 李冰 宋峣

摘 要:針对空间科学卫星探测数据的实时处理要求越来越高的问题,提出一种基于流计算框架的空间科学卫星数据实时处理方法。首先,根据空间科学卫星数据处理特点对数据流进行抽象分析;然后,对各处理单元的输入输出数据结构进行重新定义;最后,基于流计算框架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.)

猜你喜欢
数据流数据处理
应用数据流分析排除起动机不转故障的研究
电容式传感系统数据处理电路的设计
数据流和波形诊断技术在发动机故障诊断中的应用
基于ARCGIS 的三种数据处理方法的效率对比研究
贵州开建FAST科学研究与数据处理中心
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
数据流安全查询技术综述
视频大数据处理的设计与应用
利用数据流进行电控故障诊断的案例分析