论文部分内容阅读
天文仪器的制造工艺的提高,高分辨率设备的应用,现代的大型望远镜都面临着海量观测数据处理的挑战。我国明安图射电频谱日像仪(Mingant U Sp Ectral Radioheliograph,MUSER)以高空间、高时间、高频率分辨率对太阳活动进行观测,按照每天8小时观测时间计算,每天的原始数据量可达2.6TB,且包含实时计算和批量计算模式。在MUSER海量数据处理的需求背景下,传统的单机多线程、多核并行技术,表现出诸多的局限性。当前一些主流的开源分布式数据处理技术,例如Hadoop,因为依赖特定存储技术,编程接口,数据处理对象和模式等因素限制了它们在天文数据处理中的应用,并不适合在射电数据处理中。因此,MUSER海量数据处理就需要设计和实现一套具有高性能、高扩展性,易编程的分布式数据处理框架。澄江一米红外望远镜(New Vacuum Solar Telescope,NVST)目前已投入观测,由于观测的需要,陆续新增了多个设备,但新增的各类终端设备均是独立工作,导致当前的观测过程严重依赖于人工现场处理,缺少统一的控制与观测调度。因此为发挥NVST的作用,必须进一步提高整体系统的自动化、信息化,把当前分离的各个子系统进行整合,实现望远镜自主观测。因此,本论文以分布式数据处理技术为核心,研究分布式计算框架的设计、分布式计算在MUSER中的具体应用和基于Zero MQ的望远镜观测控制系统的网络通信模型设计,论文主要研究工作包括:1)Spark Streaming实时计算框架在MUSER的准实时的抽样观测数据处理中的应用。针对MUSER的需求,设计了自定义的接收器,选择自定义分区方式,等多种方式优化Spark Streaming在MUSER实时处理中的性能,通过异步执行方式提高处理的稳定性;2)面向天文海量数据处理的分布式计算框架(Open Cluster)的设计。使用在天文中广泛应用的Python语言编写,提供了简易的编程接口,多类型工作节点,方便天文学家将已有数据处理代码简单快速地扩展成分布式应用,节点失效检查使用心跳机制,支持一主多备提高主节点的高可用性,实现了简单的领导者选举机制。将该框架应用在MUSER的实时和批量数据处理中,设计了MUSER数据处理的应用界面;3)多种集群资源调度研究。深入分析了Mesos集群资源管理器,针对设计的分布式计算框架的独立调度模式的不足,结合Mesos实现了单任务单框架和集中仓储式调度模式。解决了集群中多种计算框架的资源隔离和共享,优先级的任务调度问题;4)基于Docker的Caa S(Container as a Service)构建天文轻量级私有云环境。为提高MUSER中长期运行服务的可靠性,使用了Mesos+Marathon+Docker组合进行应用的创建和容器的调度,使用Kubernetes容器管理工具创建可靠的MUSER长期运行服务;5)基于Zero MQ的望远镜观测控制系统的网络通信模型设计。分析了开源天文望远镜控制系统RTS2中基于Socket网络通信的局限性,根据物联网应用中和望远镜控制系统中都是对设备控制的相似性,讨论了物联网通信协议MQTT在望远镜控制系统中适用性,给出了基于Zero MQ的天文望远镜控制中通信部分设计。论文研究的面向海量观测数据的分布式处理技术和基于Docker的轻量级容器云部署应用解决了MUSER观测数据的实时、历史积分数据分布式处理和可靠服务应用的难题,实际应用性较强,基于Zero MQ的望远镜观测控制系统的网络通信模型设计为未来观测控制系统的实现打下了良好基础。研究方法也为未来国内外类似射电望远镜海量数据的分布式处理和望远镜观测控制系统的设计提供了参考,具有一定的应用和推广价值。