论文部分内容阅读
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法是由Ester Martin等人提出的一种基于密度方法进行聚类分析的算法,具有发现任何形状的簇类、有效分辨噪声点且对空间数据库有良好支持的特点,已经在空间数据挖掘(Spatial Data Mining,SDM)领域得到了广泛的应用。然而,在一些大规模的空间数据挖掘中,随着计算数据规模的增大,DBSCAN算法的处理时间呈指数级上升,串行算法性能已经无法满足应用发展的实时性需求。针对这个问题,主要是通过集群、GPU、Hadoop等平台构建并行DBSCAN聚类算法来解决,但是这些研究却存在:(1)传统的并行处理平台价格昂贵,可扩展性及容错性较差,共享式架构易造成数据传输瓶颈;(2)Hadoop平台在处理这类多迭代的聚类算法时,需要频繁的进行数据读写,随着数据量增大,处理效率将受到影响。Spark作为新一代的大规模数据处理快速通用引擎,抽象出弹性分布式数据集(Resilient Distributed Dataset,RDD)来进行数据存储,使得中间结果无须输出到分布式文件系统,提高了数据处理的实时性,且保证了高扩展性,容错性,可以很好地克服上述传统并行平台存在的问题。因此,本研究基于Spark平台,在分析空间数据挖掘中的DBSCAN聚类算法原理及实现基础上,研究其在Spark平台上的并行化策略和方法。主要研究内容如下:(1)空间数据挖掘中DBSCAN聚类算法并行化分析与并行方案设计。在实现DBSCAN聚类算法的基础上,使用Intel VTune性能分析工具得到DBSCAN聚类算法中适合并行化的热点部分,并结合Spark平台的平台特征,设计合适的并行化方案。(2)基于单节点Spark平台的DBSCAN并行聚类算法的实现与优化。结合并行框架和并行算法流程图实现了基于单节点Spark平台的DBSCAN并行聚类算法。并从数据传输、数据序列化、资源参数三方面对单节点Spark平台的并行算法进行了优化,进一步提高并行算法的效率;同时将该算法与基于OpenMP的并行算法进行性能对比。(3)为充分利用节点上的计算资源,进一步探讨Spark集群模式下DBSCAN聚类算法的并行实现研究。采用基于Docker容器技术、Yarn(Yet Another Resource Negotiator)资源管理器、Mesos资源管理器对算法进行并行化设计,使其能充分利用设备上的硬件资源,同时将该算法与基于传统Hadoop集群平台的并行算法进行性能对比。(4)将基于Spark平台的DBSCAN并行算法应用于城市拥堵区域发现领域,验证本文提出的并行算法的实用性与高效性。最后,对以上的研究内容进行了具体的测试分析,得到了如下结论:(1)在单节点Spark上实现的并行DBSCAN算法,其加速比要高于在OpenMP平台上的对应并行算法;(2)在集群模式下,Spark on Yarn部署方式相对Spark on Mesos方式更适合于迭代较多的聚类算法,且相对Hadoop并行算法具有明显的效率提升;(3)最后在城市拥堵区域发现应用中,对比已有研究成果,验证了DBSCAN并行算法在城市拥堵区域发现领域的实用性和有效性。