论文部分内容阅读
传感器技术飞速发展直接导致万物联网时代的到来,对所获取海量时空和遥感数据快速有效地处理和分析是以智慧城市和数字地球为代表典型应用所关注的核心问题。体积巨大且异构多样化高时空分辨率遥感影像是探索全球大气、土壤以及水循环变化的关键。结合快速产生的地理空间数据,使得集成地研究人类活动对这些要素影响成为现实。为了满足处理和分析的高资源需求,廉价地获得实时或近实时的处理结果,越来越多研究开始关注结合云虚拟化的高性能并行计算技术对海量空间数据进行处理。面向大规模空间数据处理时,运行时可扩展的空间数据处理算法以及有效且通用的并行处理模型都是必须的。尽管可扩展性极好的MapReduce并行处理模型能以较高性能在廉价的集群环境中快速有效地处理大规模空间数据,但是该模型存在对迭代算法支持不足的缺陷。强调基于数据位置的计算本身会带来“倾斜”处理危险,使得集群计算任务会聚集在处理能力差的计算节点上。此外,云主机性能受底层虚拟化技术影响,使得MapReduce不能适应实时时空数据分析需求。而近年来,以Spark框架为代表的内存计算模型以其低延时、高容错性和高吞吐等特点,在海量时空数据处理中得到越来越广泛应用。本文从并行处理模型、算法实现、以及底层框架优化这三方面对云环境中实时空间数据处理关键性和挑战性问题展开研究。尽管Spark在最近几年被广泛使用,将其成功应用于实时海量空间数据处理和分析的场景并不多见。这主要是因为粗糙粒度的数据并行模式要求合理的数据划分以适应计算单元异构性。针对海量空间数据处理算法需自适应底层资源的动态变化。Spark核心调度和中间结果管理机制不考虑计算节点异构性及任务负载均衡问题。此外,Spark并行框架并不支持针对空间分析所必须的空间谓词计算操作。云环境中资源管理复杂,智能化的计算和存储资源供给又要求对基础架构即服务层(IaaS)以及平台即服务层(PaaS)资源管理和使用策略有深入理解,这就增加了空间数据分析人员的学习成本。本文围绕这些关键问题展开论述,提出一系列具有创新性的解决思路及方法,主要的贡献如下:(1)本文对大规模空间数据分析模型和方法进行总结和提炼,并针对集成处理和分析海量遥感数据方法缺失的当前现状,提出了一种面向条带的并行计算模式。通过融合条带抽象和Spark分布式数据集,使得复杂遥感影像并行算法可以通过简单的结合了广播变量的并行转换原语实现。此外,针对Hadoop集群联合需求,提出了一种通用的遥感影像划分方法,使得算法能自适应异构Hadoop集群。(2)本文对Spark核心调度机制以及中间结果管理方法展开研究,针对大规模遥感影像并行处理效率主要受制于并行计算任务“倾斜”处理产生的延时,提出了一种基于对等网络(P2P)协议的中间结果管理模型。实现了 Spark核心在调度任务时能够智能感知Spark执行器所在计算节点的负载和网络传输延时的功能。实验结果表明,采用该存储模型的Spark内存计算框架,对于连接密集型遥感算法效率提高20.1%至36.3%,对于迭代密集型的遥感算法的效率提高20.7%至32%。(3)除了约束的并行编程模型以及自适应底层资源变化的并行计算框架之外,结合云环境弹性资源供给模型是实现约束时间下的海量地理空间数据实时处理的关键。为此,本文提出了一种弹性地理空间处理框架,并给出弹性空间查询处理方法以支持应急条件下的海量空间数据分析需求。首先,为符合主从设计的Spark调度器和执行器,分配具有自愈能力的容器资源。接着利用PaaS层容器编排工具,智能地为容器安排计算资源,最后再利用IaaS层自动虚拟机扩展插件,动态回收和扩充虚拟机实例。实验结果表明,结合弹性化容器资源供给以及虚拟机自扩展能力的空间处理算法能在约束时间内完成。通过供给较少容器以及适中的Spark执行器可用内核,可以尽量减少因容器相互竞争产生的调度延时。自扩展容器而不是自扩展虚拟机实例减少了 Spark执行器丢失以及虚拟机实例性能变化造成的算法效率不确定性。(4)本文设计和实现了云环境中集成处理和深度学习框架ElasticSpark,并探讨了主流深度学习框架的缺陷。通过对比分析,使用虚拟化容器组成的Spark计算集群,相对于YARN集群,深度神经网络训练更为稳定和高效。此外,采用Kademlia缓存优化的Spark框架,深度学习算法的效率可以得到进一步提升。两层虚拟化并没有带来严重性能下降,是因为Kubernetes提供的覆盖网能够使容器间通信稳定和高效进行。通过结合云容器虚拟化技术和光学遥感反演全国耕地土壤含水量,本文实现了高精度和高效反演土壤水的业务化运行模型。该模型直接以VIIRS 一级产品中的9个反射波段,和3个热散射波段,以及实测土壤数据作为输入。模型验证的结果证明,实测和通过模型预测土壤水含量具有高度一致性。当隐含层为8层,神经元数为500时,模型达到最优化。