论文部分内容阅读
本文针对天文学交叉证认应用,对分布式连接(Join)算法进行优化研究,基于现有的连接算法基础,提出了基于MapReduce分布式计算框架下的BMJoin连接算法;经过理论分析和实验验证,本文证明了BMJoin算法针对大数据集下的数据连接操作,相对于现有算法具有较高的性能提升。 交叉证认是天文学中基本且关键的计算过程,其任务是将来自不同观测源的天体信息整合为统一的观测星表,以进行下一步的天文学研究。该应用的主要计算是针对来自不同星表的天体进行分析,通过计算它们的位置,以确定它们是否是相同的对象,进而将其属性信息整合到一起。该应用可以转化为数据库中多表的连接操作。 本文首先对天文学交叉证认应用进行了详细的分析,对天文观测的数据特征进行了总结,进而将交叉证认应用转换为大数据下的不同数据集间的连接操作。而后,本文阐述了现有的数据系统中的传统连接算法和分布式环境下的连接算法,包括Common Join和Map Join等,并分别分析了其运算优势和瓶颈。 基于现有的连接算法,利用现有的计算框架,本文提出了基于数据分桶机制和Map端计算的分布式连接算法BMJoin(Bucket-based Map Join)。该算法利用现有的分桶机制对海量天文数据进行分区处理,并在MapReduce环境下进行Map端的分布式哈希连接操作。本文详细阐述了本连接算法的设计思路与实现细节,同时对该算法的计算过程进行了建模分析。经过理论分析,本文说明BMJoin算法相对于现有的连接算法的性能提升,并给出了其理论分析结论。 最后,本文利用真实的天文观测数据,对BMJoin算法进行了对比实验;实验结果验证了之前理论分析结论,证明了该算法在保持良好扩展性的基础上,相对于现有连接算法具有较高的运行效率提升。在大表与小表的连接中,BMJoin相对于Map Join算法最多有2.4倍的相对加速比;在大表与大表的连接计算中,BMJoin相对与Common Join算法最多有1.9倍相对加速比的性能提升。