课程设计说明书
题目:
基于 Hadoop 的商品推荐系统
名:
姓
院 (系):
专业班级:
学
号:
指导教师:
成
绩:
时间: 2019 年 9 月 23 日至 2019 年 12 月 27 日
课程设计任务书
题目
专业、班级
主要内容:
基于 Hadoop 的商品推荐系统
班学号
姓名
设计一个基于 Hadoop 的商品推荐系统,商品推荐引擎大致可以分为 5 部分,
分别是:计算用户的购买向量、计算物品的相似度矩阵、计算推荐度及相关处理、
数据导入数据库和对于整个项目的全部作业控制。通过 MapReduce 程序将 HDFS
集群上的数据保存到 MySQL 数据库中。系统做好后,进行测试。最终完成实验设
计。
基本要求:
1、根据选题任务要求,收集并查询相关文献资料;
2、认真完成系统需求分析,明确数据要求和处理要求;
3、通过对系统的功能分析和数据分析进行系统的需求分析设计,完成业务流程图
等阶段性成果;
4、商品推荐引擎的功能结构设计,完成基本全局功能的设计并体现设计过程。
主要参考资料:
[1] 张伟洋.Hadoop 大数据技术开发实战[M].北京:清华大学出版社,2019.
[2] Khaled Tannir.Hadoop MapReduce 性能优化[M].范欢动译.北京:人民邮电出版社,2015.
[3] Paul,DuBois.MySQL 经典实例(第三版)[M].马晶慧译.北京:中国电力出版社,2019.
[4] 鸟哥.鸟哥的 Linux 私房菜[M].北京:人民邮电出版社,2018.
完 成 期 限: 2019 年 12 月 27 日
指 导 教 师 签 名 :
课程负责人签名:
摘要
摘要
基于 Hadoop 的商品推荐系统,可以利用用户的历史数据,挖掘出商品之间的联系,
从而减轻用户的搜索负担,促进用户的购买动力,为商品推荐系统提供持续、良好的用
户体验保证。融入基于 Hadoop 的大数据分析框架,保证了用户和商品推荐系统之间交
易的及时性,可以提升用户的体验,从而不断扩大商品推荐系统的声誉和影响力。通过
对基于 Hadoop 的推荐系统的研究与分析的基础上,以及 MapReduce 编程思想的基础上,
设计和实现了一个基于 Hadoop 的商品推荐系统。
通过对系统的需求分析,研究了商品推荐系统的目标需求,包括安全需求,分析预
测需求和界面需求,详细阐述了商品推荐系统的功能需求,包括角色定义和功能划分。
对商品推荐系统的具体功能进行了详细的描述。在系统设计阶段,对功能模块,数据库
表及系统逻辑构架进行了详细的设计。在系统实现阶段,实现了商品推荐系统中的相关
推荐模块实现了商品推荐系统中的功能。
通过对 Hadoop 大数据分析框架的研究,为商品推荐系统提供坚实的技术和性能保
障。通过对推荐技术的研究,可以拉近商品推荐系统中用户与商品的距离,从而实现个
性化。
关 键 词: 推荐系统;Hadoop;MapReduce;大数据
I
目录
目录
摘要 ...................................................... I
目录 ........................................ 错误!未定义书签。
1 概述 .................................................... 1
1.1 课程设计目的 ..................................................1
1.2 预备知识 ......................................................1
1.3 实训的内容和要求 ..............................................1
2 需求分析 ................................................ 2
2.1 系统目标 ......................................................2
2.2 功能分析 ......................................................2
2.2.1 收集原始数据 ..................................................... 2
2.2.2 计算物品相似度矩阵 ............................................... 3
2.2.3 计算用户购买向量 ................................................. 3
2.2.4 计算推荐向量并去重和排序 ......................................... 3
2.2.5 数据入库 ......................................................... 3
2.2.6 作业控制 ......................................................... 3
2.2.7 商品推荐功能 ..................................................... 3
2.3 系统非功能需求 ................................................4
2.4 开发环境 ......................................................4
3 设计步骤 ................................................ 5
3.1 系统架构设计 ..................................................5
3.2 系统层次架构设计 ..............................................6
3.3 系统功能模块设计 ..............................................7
3.3.1 计算物品相似度矩阵 ............................................... 8
3.3.2 推荐矩阵(相似度矩阵*向量) ........................................ 9
II
目录
3.3.3 对推荐向量进行处理 .............................................. 10
3.3.4 数据入库 ........................................................ 10
3.4 系统数据库设计 ...............................................10
4 详细设计 ............................................... 12
4.1 推荐模块程序流程图 ...........................................12
4.2 系统架构图 ...................................................13
4.3 数据预处理层 .................................................14
4.4 推荐结果生成层 ...............................................14
4.5 推荐系统流程图 ...............................................15
5 系统实现 ............................................... 16
5.1 计算用户购买商品的列表 .......................................16
5.2 计算商品的共现关系 ...........................................16
5.3 计算用户的购买向量 ...........................................17
5.4 推荐结果 .....................................................17
5.5 数据去重 .....................................................18
5.6 推荐结果入库 .................................................18
5.7 构建作业流对象 ...............................................20
6 系统测试 ............................................... 22
6.1 计算用户购买商品的列表 .......................................22
6.2 计算商品的共现次数 ...........................................22
6.3 计算用户的购买向量 ...........................................22
6.4 推荐结果 .....................................................23
6.5 数据去重 .....................................................24
6.6 推荐结果入库 .................................................25
6.7 web 系统推荐商品实现 ......................................... 25
心得体会 ................................................. 26
参考文献 ................................................. 27
III
概述
1 概述
1.1 课程设计目的
识的能力。
(1)巩固和加深对大数据云计算和 Hadoop 基本知识的理解,提高综合运用课程知
(2)使学生巩固所学的理论基础知识的理解,掌握大数据云计算平台的搭建以及
MapReduce 程序设计的全过程及技术与方法。
(3)培养学生编制软件文档及开发应用系统的能力,提高学生独立分析问题、解
决问题的能力,锻炼和加强学生的动手能力。使学生掌握使用各种计算机资料和有关参
考资料。
(4)培养学生掌握 Linux/Unix 操作系统中常用的命令和利用集成开发工具 Eclipse。
1.2 预备知识
本次课程设计选取 Apache 和 Hadoop 作为本应用系统的分布式计算平台。在编写本
次课程设计时,我首先需要掌握大数据云计算平台的搭建以及 MapReduce 程序设计的
全过程及技术与方法。一些程序需要在 Linux 操作系统中利用集成开发工具 Eclipse 进
行开发。所以我要具备一定的 Java 基础,并学会怎样让 Linux 操作系统与外界联网,以
及利用 X-Shell 软件让 Windows 系统与 Linux 系统实现文件互传的操作。该系统数据库
采用 MySQL5.7 服务器。这要求我要掌握一些数据库的基本知识。
1.3 实训的内容和要求
(1)根据选题任务要求,收集并查询相关文献资料,明确系统需求;通过对系统
的功能分析和数据分析进行系统的需求分析设计,完成业务流程图等阶段性成果;
(2)商品推荐引擎的功能结构设计,完成基本全局功能的设计并体现设计过程;
(3)商品推荐引擎的详细结构设计,完成各个模块的功能的详细设计;
(4)商品推荐引擎存储数据库的结构设计,完成数据库实施的所有 sql 脚本的编写
及索引文件的创建以及数据库的权限性控制;
(5)商品推荐引擎的实施。
1
需求分析
2 需求分析
2.1 系统目标
商品推荐系统是对用户的历史行为进行挖掘,对用户兴趣信息进行建模,并对用户
未来行为进行预测,从而建立用户和内容的关系,满足用户对商品的推荐需求的一种智
能系统。通过对主要的推荐算法进行比较分析,模拟实现了基于用户行为的智能推荐系
统,提高了推荐算法的有效性。商品推荐系统是为了更精准的为用户推荐他们想要的内
容,如果一个用户在浏览商品信息的时候,通过对用户数据的记录,和已经存在的其他
的用户记录进行分析,从而为用户推荐相应的数据。本次课程设计是基于 Hadoop 的商
品推荐系统,本此课设通过对用户行为的研究,发现用户购买的偏好波动幅度偏大,如
何充分利用这一特征是提高推荐系统精准度的关键。用户行为数据的处理。商品推荐系
统用户、商品行为主要是用户的购买行为。购买行为包含了丰富的用户购买商品,如何
处理这些购买商品是推荐系统实现的关键。
系统必须具有高扩展性。网上购物每时每刻都会有新的数据产生,都会执行新的购
物行为,系统的扩展性变得尤为关键。推荐系统的推荐质量。推荐系统的最终目的是推
荐,所以推荐质量是整个系统设计的最终目的。好的推荐系统需要兼顾系统的精准度、
覆盖率以及新颖度。
2.2 功能分析
基于 Hadoop 的商品推荐引擎大致可以分为 5 部分,分别是:计算用户的购买向量、
计算物品的相似度矩阵、计算推荐度及相关处理、数据导入数据库和对于整个项目的全
部作业控制。
2.2.1 收集原始数据
推荐系统是基于用户、商品行为数据来进行推荐的,没有用户商品数据的推荐系统
是无法进行推荐的。rawdata 文件:该文件是收集用户对物品的偏好,形成“用户 物品 偏
好”的数据集。数据格式:用户编号 物品编号 偏好值。
图 2.1 用户行为数据采集分析功能用例图
2
2.2.2 计算物品相似度矩阵
需求分析
通过对用户购买商品的列表的处理计算出商品的共现关系, 并将结果保存到 HDFS
集群上,然后通过对商品的共现关系的数据处理最终得出物品的相似度矩阵并将结果保
存到 HDFS 集群上。
图 2.2 用户行为数据处理功能用例图
2.2.3 计算用户购买向量
用户购买偏好分析功能主要是根据用户的历史购买记录分析出该用户的购买偏好,
提供给商品推荐相关数据。将采集的数据先计算用户购买商品的列表,并将结果保存到
HDFS 集群上,然后通过对用户购买商品的列表的处理最终得出用户的购买向量, 并将
结果保存到 HDFS 集群上。
图 2.3 用户购买偏好功能用例图
2.2.4 计算推荐向量并去重和排序
将物品的相似度矩阵乘以用户的购买向量,形成临时的推荐结果,并将结果保存到
HDFS 集群上,最终对结果进行求和及排序去重,从而得到推荐度并将结果保存到 HDFS
集群上。
2.2.5 数据入库
通过 MapReduce 程序将 HDFS 集群上的数据保存到 MySQL 数据库中,在此之前,
数据库中必须保证表提前存在。
2.2.6 作业控制
构建作业流对象(JobControl)让程序自行提交作业。
2.2.7 商品推荐功能
商品推荐功能通过以上的结果计算得出给某用户推荐某些商品,完成商品推荐功
3