论文部分内容阅读
随着互联网的飞速发展,数据充斥着人们日常生活的方方面面,人们已经进入了大数据时代。而数据中却蕴藏着丰富的有价值的信息,面对数据的爆炸式增长,如何运用有效的方法挖掘出数据中有价值的信息在大数据的研究课题中具有重要意义。Hadoop作为一个开源的分布式大数据处理框架,采用Hadoop Distributed File System(HDFS)进行存储和Map Reduce(MR)进行计算,但面对海量数据计算,基于MR计算已经无法满足用户日益提高的服务要求。而Spark的诞生大大改善了这一点,它是基于内存计算的分布式大数据处理框架,使用Resilient Distributed Datasets(RDD)数据模型编程,与MR相比,大大减少了磁盘的I/O次数,特别是在高迭代的数据计算中表现的尤为明显。因此,Spark一经诞生迅速受到了广大企业、学者的追捧。推荐系统是解决信息过载的有效办法,本文采用协同过滤算法基于Spark平台实现一个视频推荐系统帮助用户在海量视频数据中挖掘出真正想要的视频信息。但使用Spark平台进行数据处理过程花费的时间也很漫长,不能够满足用户的需求,而搭建分布式的Spark集群可以实现数据并行化计算,从而有效提高计算效率。本文通过对推荐算法并行化设计以及推荐系统的分析与设计,完成了基于Spark的视频推荐系统的实现。主要所做的工作如下:(1)基于Spark的视频推荐算法的并行化设计。首先通过对推荐算法和Spark平台及其各个组件的了解,详细设计了推荐算法在分布式的Spark集群中的并行化实现过程,包括基于项目的协同过滤和基于用户的协同过滤推荐算法的并行化实现。最后,通过对比实验比较了推荐算法在基于Spark集群和基于Hadoop集群上的性能差异。(2)基于Spark的视频推荐系统的实现。本文主要是基于Spark平台完成了视频推荐系统的实现,系统将获取的Web日志进行预处理存入数据库中,训练推荐模型,采用实时和离线推荐相结合的方式给用户产生推荐列表。系统将数据处理以及模型训练在Ubuntu系统上的Spark集群中进行,而将视频推荐和业务逻辑模块以及推荐列表展示在Windows系统中进行。