基于Hadoop构架的推荐系统平台

2015-07-18 11:44刘卓崔忠伟
电脑知识与技术 2015年12期
关键词:大数据技术

刘卓 崔忠伟

摘要:高速发展的信息技术和迅速增加的数据,给人们的生活带来困惑,推荐系统(Recommender System)可以从海量的用户浏览信息中,根据用户的特点,选择出特定的内容推荐给用户,推荐系统给用户提供了极大的便捷,但是,目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷,基于Hadoop构架的推荐系统解决了这一缺陷,它经济适用强,效率高,并且极大的提高了基于分布式计算Hadoop构架能够解决推荐系统的可扩展性问题,同时,对于大数据技术在实际中的应用具有实际意义。

关键词:Hadoop构架;大数据技术;推荐系统平台

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)12-0012-03

The Recommendation System Based on Hadoop Structure

LIU Zhuo 1,2, CUI Zhong-wei1,2

(1.School of Mathematics and Computer Science,Guiyang Normal College,Guiyang 550018, China 2.Industrial Internet of Things Engineering Research Center of the Higher Education Institutions of Guizhou Province, Guiyang 550018, China)

Abstract: the rapid development of information technology and the rapid increase of data give the people life confusion, according to the user characteristic the recommendation system can select the specific content from the mass of user browsing information ,which provides the user with great convenience, but, at present, the recommendation system has defects in the space storage scalability and the algorithm deficiency, the recommendation system based on Hadoop structure solves the defects, and it is affordable, high efficiency, and greatly improves the scalability problem based on the Hadoop distributed framework ,also which has an important significance for the application of big data technology in practice.

Key words: Hadoop framework; the Big Data; the Recommendation System

1概述

随着电子商务的快速发展,网上商品的种类和数量日益繁杂,顾客面对选择的时候,往往不知道从何抉择,为了解决这一个困惑,推荐系统平台应运而生, 目前,推荐系统平台引领了各个搜索型网站,交友软件的好友推荐、美团网网站的热门推荐、购物网站的商品推荐、视频网站的电影推荐、资源网站的优质资源推荐等,这些推荐系统提高各个网站的点击率和销售额,影响着人们的学习、生活、工作。

Hadoop,是大数据技术的核心技术,即分布式系统基础构架,主要有HDFS和MapReduce两部分组成,它能够实现对大量数据的存储和计算,能够将多台普通或者低性能的服务器组合成分布式的运算集聚。如果我们把Hadoop的这一特性应用到推荐系统,势必能够提高推荐系统的推荐范围和推荐的精准度[1],,克服了目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷。

2 Hadoop

2.1 HDFS

HDFS即分布式文件系统,由block、namenode和datanode组成,是Hadoop的核心技术之一,主要是超大文件的存储和超高效的访问模式,它可以存储GB、TB的文件,它所存储的数据集既是我们的分析对象,我们可以借助HDFS长时间对这些数据进行分析,它的一个显著的优点就是可以运行在普通的服务器上面,但是它在数据访问时要求高延迟,在存储大量的小文件时,内存可能跟不上要求,目前HDFS只支持单个用户写,无法满足多个用户并行写。

基于HDFS的上述特点,我们对HDFS(分布式文件系统)的遵守的原则如下:

1)访问的透明性:在分布式文件系统中,对于本地文件和远程资源的访问,用户可以通过同样的操作完成;2)位置的透明性:在不改变文件路径的前提下,使用同样的文件命名空间,那么在这种前提下,文件可以重新被定位,在HDFS文件中,我们只使用一个namenode来管理文件系统,我们可以根据block副本的数量来重新复制;3)移动的透明性:这个有namenode的edits中的日记文件对文件的移动、复制,增加因子等变化进行记录,而客户端和客户端程序并不需要改变什么;4)性能的透明性:HDFS一个显著的优点就是能够在普通廉价的服务器上面,它的性能可以参看首页上的benchmark。

2.2 MapReduce

MapReduce是Hadoop的核心技术,通过映射和化简来实现大量数据的并行计算,是大数据计算的开发模式和思想方法,先把一个大的问题进行分解成小问题,找出各个小问题的并行处理部分,在根据相关要求写出Map程序,接下来可使用服务器群来执行Map程序[2],每一个服务器可执行Map程序的一个并行小段,对于Map程序的执行结果,通过Reduce程序来实现执行结果的合并,最终,就可以合并出最终的完整结果[3]。例如:你要在一个浏览器中搜索“computer”,可以先通过Map程序找出每一个网页中这个词语的位置,然后在使用Reduce程序获得相应的URL,这样就可以得到最终的搜索结果[4]。

3基于Hadoop的推荐系统的设计

3.1算法模型

以前的推荐系统平台常用的算法模型是最近邻模型;基于矩阵分解的模型;社会网络图模型;Hadoop出现以后,我们把Hadoop构架和推荐系统的算法模型结合,即分布式基于物品的协同过滤算法,算法的主要思想:

1) 建立物品的同现矩阵:根据用户的浏览记录,两两一组对浏览记录进行计数,同现矩阵如图1所示。

2)建立用户对物品的评分矩阵:找个用户对某一个物品的评分,评分矩阵如图2:

3)通过对物品同现矩阵和评分矩阵的计算,得出推荐结果,即表达为:同现矩阵*评分矩阵=推荐结果,经过计算得出推荐结果如图3:

4)使用MapReduce完成最终计算

1使用Map程序,根据用户分组,计算出相应物品的组合列表得,得到评分矩阵;

2使用Map程序,建立相应物品的同现矩阵;

3使用Reduce程序,合并矩阵并计算结果列表。

以上是计算模型,模型本身并复杂,但是面对海量的数据存储时Hadoop就能够发挥它实现大量数据储存和大量数据计算的功能。

3.2推荐系统构架设计

结合算法设计模型,我们把算法设计成如下步骤:

1) 在Application中的Database记录了用户的浏览记录和对某项物品的打分记录;

2) 通过CRON(系统定时器),每隔一段时间,把Database中记录的数据导入到HDFS;

3) 数据导入完成后,系统启动MapReduce程序,运行推荐系统模型算法;

4) 计算完毕后,从HDFS中导出数据到数据库中。

3.3 MapReduce程序设计

我们使用Map程序把大任务分解成各个并行的小任务,在依靠Reduce程序进行合并计算[5],在MapReduce程序设计中我们主要采用java语言,有main.java、frist1.java、frist2. Java和frist3. Java四个主要的程序组成。

1) 启动主任务:main.java ,在主任务中,给出各个分程序的路径;

2) 计算评分矩阵:frist1.java,依据算法模型,根据用户分组的不同,得出各个分组的评分;

3) 计算同现矩阵:frist2. Java;

4) 计算推荐结果:frist3. Java,依据算法模型:推荐结果=同现矩阵*评分矩阵;

3.4 设计的优缺点

基于Hadoop构架的推荐系统能够在大范围内、高效率精准地进行推荐,极大的改变现在推荐系统有限的推荐范围,同时,由于Hadoop的成本并不高,设计成本合理,使用性强,是大数据技术的又一个经典实例。

在MapReduce程序设计frist3. Java这一步骤的运行过程中,这种程序设计具有明显的缺陷:Hadoop读入顺序不能够随便制定,面对多个节点的Hadoop集群环境,假如有两个输入集,那么输入的顺序有可能发生错误,进而导致产生空指针。这个计算过程,同现矩阵和评分矩阵存储过大,在内存中进行存储和计算,如果矩阵存储量过大,会造成单个节点的存储不足[6]。

4总结

在大数据技术的热潮影响下,各行各业已经受到极大的影响,大数据的关键性技术Hadoop具有较强的应用市场,本文把目前流行的推荐系统平台和Hadoop构建融合在一起,克服了目前的推荐系统在空间存储的可扩展性与算法的效率存在缺陷,它经济适用强,效率高,并且极大地提高了基于分布式计算Hadoop构架能够解决推荐系统的可扩展性问题,对于大数据技术在实际中的应用具有重要的意义。

但是,目前基于Hadoop构架的推荐系统还存在一点的缺陷,由于Hadoop平台中数据的输入顺序无法限定,容易造成数据的混淆,造成误差,在以后Hadoop版本中我们要积极解决这些问题,使Hadoop技术更加成熟和完善。

参考文献:

[1] 林清滢.基于Hadoop的云计算模型[J].现代计算机,2013(7) :114-118.

[2] 陶冶.基于MapReduce的分布式Web服务搜索引擎研究与实现[D].湘潭:湖南科技大学,2012.

[3] 李光.MapReduce型海量数据处理平台中的内存级数据缓存技术研究[D]. 北京:北京工业大学,2013.

[4] 陈飞.MapReduce模式下的位置服务数据索引设计与应用[D]. 天津:天津大学,2012.

[5] 孙广中,肖锋,曦.MapReduce模型的调度及容错机制研究[J].微电子学与计算机,2012(09) :134-138.

[6] 卢强.基于MapReduce的移动学习用户群聚类分析[D].武汉:华中师范大学,2013.

猜你喜欢
大数据技术
善用“互联网+” 提升政府善治能力
大数据技术之一“数据标识”
大数据技术在雾霾治理中的应用
浅谈大数据技术在互联网金融中的应用
大数据技术对新闻业务的影响研究