论文部分内容阅读
随着对大型科学数据的操作要求越来越高,科学家们需要灵活的集群软件来执行快速的科学数据分析。本文在Spark平台上针对不同的实现数组操作的方法,对算法进行分析和性能评估;并提出SparkArray系统,基于科学数据数组模型,实现并优化了一系列常见的数组操作。本文创新点主要有: 1.比较分析了independent、overlap和merge三种集群处理数组算法,在高斯滤波、集群提取等数组操作上分别实现三种算法。实验结果表明,independent算法的并行度最高,但网络传输量大,overlap方法可以在并行度和网络传输量两方面得到较好的权衡,性能最好。 2.针对科学数组数据,提出一种新的Join算法——Filter Join。利用数组将坐标值作为Key的特点,在Join运算之前计算两数组重合部分的坐标范围,过滤掉不需要的值,只对需要的数据进行连接。Filter Join方法减少了数据传输量,但同时也增加了计算步骤。因此需要找到一个阈值,来判断是否需要进行Filter Join。实验结果表明,和传统广播Join、分区Join相比,在数组大小逐渐超过1w5*1w5或者数组覆盖率超过50%时,Filter Join性能最好。 3.本文还用SparkArray实现了标准科学数据库的基准SS-DB,并与开源数据库管理系统SciDB比较。结果表明,在对数据进行快速加载或者一次性分析的情况下,SparkArray优势比较明显。实验表明,如果考虑查询的总执行时间,SparkArray在所有查询情况下都比SciDB快得多(快8倍到17倍)。