论文部分内容阅读
随着互联网的高速发展和移动客户端的普及,各类数据爆炸性地增长。如何从海量的数据中挖掘出有用的信息,成为当前的研究热点。在线音乐服务生成的用户播放记录数据就是海量数据的一种。伴随着在线音乐的发展,人们热衷于使用各种音乐播放工具听歌,用户每条播放的记录都会被在线音乐服务提供商完整地保存,通过挖掘这些用户的播放记录数据可以发现各个用户群体的听歌喜好。然而,目前的数据处理平台并不能完全满足这样的需求,因此,如何对海量的用户播放记录进行挖掘是一个很大的挑战和难点。为了在海量的播放记录中挖掘出有用的信息,论文提出并实现了一个在线音乐服务的分布式数据处理平台(KGMiner),主要用于酷狗音乐数据的数据处理,主要包括预处理、聚类分析、热度统计三个模块。同时,论文定义并抽象了挖掘中预处理和聚类分析的标准化流程,方便数据处理人员进行针对不同需求的扩展。KGMiner使用目前最成熟的大数据处理框架Hadoop,完成对酷狗音乐用户播放记录数据的挖掘工作。然而,在实际运用过程中发现,基于Hadoop的分布式k-means算法在迭代运算下存在很多不足,例如:初始点随机选择,冗长的作业启动时间,Reduce时间过长等。因此,本论文改进工作主要集中在分布式k-means算法的迭代运算效率优化。改进工作主要分为以下三部分:首先,针对k-means随机选取初始点作了改进,参考k-means++的思想,选取相距较远的点作为初始点,用于减少迭代次数;其次,针对每个作业串行执行的情况,提出了一种作业异步启动的方法,减少了作业的启动时间对于整个处理时间的消耗;最后,针对Reduce过程中,Reduce的计算时间非常短,而大部分时间用在Reduce端的框架启动和消耗的情况,提出了新的Reduce执行方式(MyReduce),MyReduce一直保持着接收数据和计算全局中心点的状态,可以有效避免在计算全局中心点过程中MapReduce框架带来的时间消耗。最后,论文在真实的酷狗音乐数据上进行实验,实验结果表明,对比优化前的k-means分布式聚类分析,本文的改进方法能让分布式聚类分析的总时间大大缩减。