计算机工程与应用 ›› 2019, Vol. 55 ›› Issue (1): 161-167.DOI: 10.3778/j.issn.1002-8331.1709-0161
马 菁1,2,李 力3
MA Jing1,2, LI Li3
摘要: K-means是经典的聚类算法,为了适应大规模数据,很多研究利用分布式计算提高其扩展性。但传统基于磁盘的分布式系统仍然存在大量I/O消耗,在基于内存的Spark系统上实现,在继承Spark平台低读写消耗和良好容错性等优点的基础上,扩展了Spark的机器学习MLlib库,在此之上增加一个索引层,引入包含多种策略的基于RDD的双级索引机制,采用新的数据划分方式,对空间距离相近的点的信息进行预处理,利用索引存储其对应的点集的概括信息,以便在K-means算法中对搜索空间剪枝,从而达到对K-means算法的优化。实验结果表明,索引层能够剪枝搜索空间达40%以上,相对无优化的分布式K-means,提升效率达21%,具有较好的可扩展性。