基于Spark的大规模天文数据天区覆盖生成方法技术

技术编号:16837455 阅读:23 留言:0更新日期:2017-12-19 19:57
本发明专利技术涉及一种基于Spark的大规模天文数据天区覆盖生成方法,其主要技术特点是:使用Spark的map算子并结合HEALPix层次化球面索引方法,根据赤经、赤纬信息对数据逐条进行分块索引;使用Spark的map算子,利用位运算对当前层每条数据的HEALPix块号进行父块块号及子块块号的分割操作;使用Spark的combineByKey算子对所有区块进行聚合操作;以上操作进行反复迭代,直至满足迭代终止条件,得到天区覆盖生成后的数据。本发明专利技术本发明专利技术设计合理,能够在短时间内完成大规模天文数据的天区覆盖生成,为实现海量天文数据的快速归档提供了支持,提升了对数据进行访问、处理的效率,此外本发明专利技术生成的结果可用于数据可视化,为研究人员直观地展现出星表中的天文数据在天区上的分布情况。

Large-scale astronomical data generation method based on Spark coverage area

The invention relates to a method of generating massive astronomical data coverage area based on Spark, its main technical features are: Map operator using Spark and HEALPix hierarchical spherical index method, according to the index block of data one by one right ascension and declination information; map operator Spark, parent block number and sub block the number of the current layer of each data block number using HEALPix bit operation segmentation operation; for all blocks aggregation operation using Spark combineByKey operator; the above operation through the iteration, until meet the conditions of iteration termination, are generated after the data coverage area. The invention of the invention has reasonable design, can be completed in a short time a large-scale astronomical data area coverage generation, provides support for the realization of rapid archiving massive astronomical data, access to data, improve the processing efficiency, the invention generates results can be used for data visualization, as researchers intuitively show the distribution of astronomical data in the sky catalog.

【技术实现步骤摘要】
基于Spark的大规模天文数据天区覆盖生成方法
本专利技术属于大数据处理
,尤其是一种基于Spark的大规模天文数据天区覆盖生成方法。
技术介绍
天区覆盖生成是天文数据归档中的重要一环,其结果对天文数据检索、计算等后续处理流程至关重要。由于天文数据的海量性,应用传统科学计算方法处理这一问题通常耗时较长,效率不高,且受限于存储空间的制约,扩展性差。近年来科技的发展大大提高了天文数据的采集能力,各波段的数据量呈指数级增长,天文学逐渐走向全波段巡天的“大数据”时代。面对如此庞大的数据量,对传统科学计算技术处理大规模天文数据的做法提出了新的挑战。一般而言,天文数据的计算主要分为数据导入、数据预处理和数据计算三个阶段,如果面对大规模天文数据,在预处理阶段对数据没有进行合理的安排,会降低数据计算阶段的执行效率,从而制约天文发现的进展。除此之外,随着望远镜拍摄能力的逐渐提升,它会带来庞大的数据量,如何提高计算的效率又成为另一问题。分布式计算的出现让研究人员得以用廉价、高效的方式处理海量数据,目前已有一些天文数据处理方法利用到了分布式计算框架。如赵青等人利用HadoopMapReduce实现大规模天文数据的交叉证认;张夏旭等人利用HadoopHBase构建对不同星表数据的有效存储,提高集群磁盘利用率和星表信息查询效率;Li等人则利用Hive优化了多星表连接的过程。此外也有黄智昌等人利用到SparkMLlib机器学习库实现星系的分类,还有SharmaT等人结合Hadoop与Spark利用聚类算法实现了星象图片的聚合分类。但是以上这些方法在数据预处理阶段缺乏对天文数据合理的安排;而且由于天文数据的海量性,应用传统科学计算方法处理这些问题通常耗时较长,效率不高,且受限于存储空间的制约,扩展性差,在处理大规模数据的时候效率不高。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种设计合理、处理速度快、效率高且可扩展性强的基于Spark的大规模天文数据天区覆盖生成方法。本专利技术解决其技术问题是采取以下技术方案实现的:一种基于Spark的大规模天文数据天区覆盖生成方法,包括以下步骤:步骤1:从HDFS中读取天文数据,使用Spark的map算子并结合HEALPix层次化球面索引方法,根据赤经、赤纬信息对数据逐条进行分块索引,将每条数据中不相关的信息以唯一Id代替,并将各个HEALPix块号调整为键;步骤2:从最低层级开始,使用Spark的map算子,利用位运算对当前层每条数据的HEALPix块号进行父块块号及子块块号的分割操作,获得相应的父块号highOrder和子块号lowOrder,最后将每条数据的父块号highOrder调整为键;步骤3:使用Spark的combineByKey算子,对步骤2处理完成的所有区块进行聚合操作;如果聚合后的结果满足条件,则全部HEALPix块号由对应的父块号highOrder代替并且被带到下次迭代,不满足条件的数据会暂存至文件系统;步骤4:以上操作进行反复迭代,若满足结束条件,停止迭代,每次迭代输出至文件系统的数据即为最终完成天区覆盖生成后的数据。所述步骤1的HEALPix层次化球面索引方法为:根据星体坐标和区块块号之间的映射关系,采用四叉树结构,以层层递归的方式对天球进行等面积划分;每一层级的区块都会被分配到唯一的二进制编码,在初始层级天球被划分成12个面积相等的基准球面四边形,每一个四边形被看作一个区块,从00至11为其编号;下一级在此基础上,每个四边形又被等分为4个子四边形,随着层级深度的增加,每一层的每个四边形都会被递归的进行四等分操作。所述每一层级的区块采用NESTED规则进行编码:每一个二进制组成的HEALPix块号由父块号highOrder和子块号lowOrder两部分组成,当上一级区块被分为四个子块后,每个子块会根据其位置被赋予00、01、10或11的其中一个二进制编号,也就是当前层级编码,上一级HEALPix块号作为前缀成为当前区块的父块号highOrder,子块号lowOrder则作为后缀;某一层级下的HEALPix块号Id表示如下:Id=highOrder<<2&lowOrder从而形成了新层级的编码。所述步骤2采用如下公式计算父块号highOrder和子块号lowOrder:highOrder=Id>>2lowOrder=Id&0x03其中,Id为某一层级下的HEALPix块号,highOrder为对应的父块号,lowOrder为对应的子块号。所述步骤3判断是否进行迭代的条件是:将相同父块号的区块聚合在一起,分析相同父块号下的子块分布情况,如果这些子块中的星体覆盖了00、01、10、11四个位置时,则当前区域内的所有区块的原始块号全部由父级块号代替,同时这些区块会被保留至下一次迭代操作;如果这些子块没有满足上一条件则保留原始块号,在当前迭代舍弃并进行其他处理,不会被带入下一次迭代。所述步骤4的结束条件为:当执行到第0级或者无法聚合时结束。本专利技术的优点和积极效果是:1、本专利技术结合了HEALPix索引和Spark框架,能够在短时间内完成大规模天文数据的天区覆盖生成,对大规模天文数据重新整理、归档,为实现海量天文数据的快速归档提供了支持,从而提升后期天文几何计算、交叉证认计算、漏源监测等对数据进行访问、处理的效率。2、本专利技术能够在短时间内完成大规模天文数据的天区覆盖生成,对大规模天文数据重新整理、归档,将其分层、划块、按序存放,为实现海量天文数据的快速归档提供了支持,同时解决了存储空间扩展性差的问题,从而提升后期天文几何计算、交叉证认计算、漏源监测等对数据进行访问、处理的效率。同时,所生成的结果还可以用于数据可视化,为研究人员直观地展现出星表中的天文数据在天区上的分布情况。附图说明图1为本专利技术在层级为1时的HEALPix索引及NESTED编码方式示意图;图2a为本专利技术的天区覆盖生成过程的实例图(k=2);图2b为本专利技术的天区覆盖生成过程的实例图(k=1);图2c为本专利技术的天区覆盖生成过程的实例图(k=0);图3为本专利技术的RDD(ResilientDistributedDatasets,弹性分布式数据集)及算子变化的流程图;图4为本专利技术的步骤1对应的数据形式转变框图;图5为本专利技术的步骤3对应的数据形式转变框图;图6为本专利技术的每次迭代输出至文件系统的部分汇总后的数据结果示意图。具体实施方式以下结合附图对本专利技术实施例做进一步详述。一种基于Spark的大规模天文数据天区覆盖生成方法需要用到大规模天文数据。下面结合图2a至图2c以一组层级为2的简单数据集为例说明本方法的执行过程,特别要说明的是图2a至图2c中的数字只显示了HEALPix块号信息,且高亮部分为满足条件保留至下次迭代的数据,虚线部分为不满足条件输出至文件系统的数据。本专利技术的基于Spark的大规模天文数据天区覆盖生成方法,如图3所示,包括以下步骤:步骤1:从HDFS(TheHadoopDistributedFileSystem)中读取天文数据,使用Spark的map算子,结合现有的HEALPix(HierarchicalEqualAreaisoLatitudePixelation)层次化球面索引本文档来自技高网
...
基于Spark的大规模天文数据天区覆盖生成方法

【技术保护点】
一种基于Spark的大规模天文数据天区覆盖生成方法,其特征在于包括以下步骤:步骤1:从HDFS中读取天文数据,使用Spark的map算子并结合HEALPix层次化球面索引方法,根据赤经、赤纬信息对数据逐条进行分块索引,将每条数据中不相关的信息以唯一Id代替,并将各个HEALPix块号调整为键;步骤2:从最低层级开始,使用Spark的map算子,利用位运算对当前层每条数据的HEALPix块号进行父块块号及子块块号的分割操作,获得相应的父块号highOrder和子块号lowOrder,最后将每条数据的父块号highOrder调整为键;步骤3:使用Spark的combineByKey算子,对步骤2处理完成的所有区块进行聚合操作;如果聚合后的结果满足条件,则全部HEALPix块号由对应的父块号highOrder代替并且被带到下次迭代,不满足条件的数据会暂存至文件系统;步骤4:以上操作进行反复迭代,若满足结束条件,停止迭代,每次迭代输出至文件系统的数据即为最终完成天区覆盖生成后的数据。

【技术特征摘要】
1.一种基于Spark的大规模天文数据天区覆盖生成方法,其特征在于包括以下步骤:步骤1:从HDFS中读取天文数据,使用Spark的map算子并结合HEALPix层次化球面索引方法,根据赤经、赤纬信息对数据逐条进行分块索引,将每条数据中不相关的信息以唯一Id代替,并将各个HEALPix块号调整为键;步骤2:从最低层级开始,使用Spark的map算子,利用位运算对当前层每条数据的HEALPix块号进行父块块号及子块块号的分割操作,获得相应的父块号highOrder和子块号lowOrder,最后将每条数据的父块号highOrder调整为键;步骤3:使用Spark的combineByKey算子,对步骤2处理完成的所有区块进行聚合操作;如果聚合后的结果满足条件,则全部HEALPix块号由对应的父块号highOrder代替并且被带到下次迭代,不满足条件的数据会暂存至文件系统;步骤4:以上操作进行反复迭代,若满足结束条件,停止迭代,每次迭代输出至文件系统的数据即为最终完成天区覆盖生成后的数据。2.根据权利要求1所述的基于Spark的大规模天文数据天区覆盖生成方法,其特征在于:所述步骤1的HEALPix层次化球面索引方法为:根据星体坐标和区块块号之间的映射关系,采用四叉树结构,以层层递归的方式对天球进行等面积划分;每一层级的区块都会被分配到唯一的二进制编码,在初始层级天球被划分成12个面积相等的基准球面四边形,每一个四边形被看作一个区块,从00至11为其编号;下一级在此基础上,每个四边形又被等分为4个子四边形,随着层级深度的增加,每一层的每个四边形都会被递归的进行四等分操作。3.根据权利要求2所述的基于Spark的大规模天文数据...

【专利技术属性】
技术研发人员:熊聪聪田祖宸赵青史艳翠王丹苏静
申请(专利权)人:天津科技大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1