论文部分内容阅读
随着技术的进步,互联网越来越贴近人们的生活,人们获取信息的途径也越来越偏向于网络。网络上产生的信息呈爆炸式增长,人们已经难以从海量的数据中获得自己想要的结果。现今已步入了信息过载的时代。为了能有效利用信息,搜索引擎被发明出来并大获成功。但是因为搜索引擎有着关键字难以总结、缺乏个性化结果等种种缺点,已经不能满足用户越来越个性化的需求。推荐系统被认为是一种比搜索引擎更优秀的信息过滤解决方案。推荐系统相比于搜索引擎具有智能性和主动性。推荐系统无需用户主动总结出关键字来进行主动的操作,而是可以以用户的历史记录作为依据,通过计算得出用户可能感兴趣的个性化结果。但是推荐引擎也面临着许多问题,其中一个就是传统的推荐引擎所使用的推荐算法是为单机运行所设计。随着海量数据的产生和机器性能瓶颈的到来,传统的单机推荐算法已经越来越无法满足实际生产环境的需要,单机算法的存储扩展性和计算扩展性都严重限制了推荐系统的发展。Hadoop是一个大数据处理平台,为用户提供了一个底层透明的分布式存储(HDFS)与计算平台(Map Reduce),可以通过简单的添加节点水平的增加集群的存储与运算能力,正可以解决推荐系统的扩展性问题。本文深入研究了HDFS和Map Reduce,针对不确定性传播算法给出了Map Reduce并行化实现。给出了一种基于项目的协同过滤算法和全局排序算法的Map Reduce并行化实现。主要工作如下:1.通过对三种算法的仔细分析与研究,将复杂的算法流程拆分开来,每一个流程分别对应一个Map Reduce作业,完成算法的并行化实现。并给出了不确定性传播算法在并行环境下运行的加速比。证明其并行化后有着较好的扩展性,解决了传统单机算法的计算扩展性问题。此外还对三种算法的命中率进行了对比。2.在4台PC机上搭建了八个虚拟机节点,在八个虚拟机节点上部署了Hadoop大数据平台。Hadoop提供的HDFS可以通过简单的增加节点来扩充整个系统的存储容量,解决了推荐系统的存储扩展性问题。3.通过分析Map Reduce任务日志,找出了耗时作业的瓶颈所在。深入分析Map Reduce的运行原理,找出可能优化的步骤,给出了一系列的优化参数,降低了作业运行时间,减小了单个任务运行失败的可能性。