文章目录
- 课程地址:尚硅谷大数据项目教程(大数据实战电商推荐系统)
- 尚硅谷电商推荐系统的配套资料及虚拟机
链接:https://pan.baidu.com/s/1iSMqV2wPkEfIsO1FrkxRNQ?pwd=1996
提取码:1996 - 1.项目体系架构设计(电商推荐系统)
- 2.工具环境搭建(电商推荐系统)
- 3.创建项目并初始化业务数据(电商推荐系统)
- 4.离线推荐服务建设(电商推荐系统)
- 5.实时推荐服务建设(电商推荐系统)
- 6.冷启动问题处理(电商推荐系统)
- 7.基于内容的相似推荐与基于物品的协同过滤推荐
- 8.尚硅谷电商推荐系统预览
一、项目系统架构
项目以经过修改过的中文亚马逊电商数据集作为依托,以某电商网站真实业务数据架构为基础,来构建电商推荐系统,包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。提供了从前端应用、后台服务、算法设计实现、平台部署等多方位的闭环的业务实现。
离线推荐处理流程:
实时推荐处理流程:
项目系统架构为:
- 用户可视化:主要负责实现和用户的交互以及业务数据的展示,主体采用
AngularJS2
进行实现,部署在Apache
服务上。 - 综合业务服务:主要实现
JavaEE
层面整体的业务逻辑,通过Spring
进行构建,对接业务需求。部署在Tomcat
上。 - 数据存储部分–业务数据库:项目采用广泛应用的文档数据库
MongDB
作为主数据库,主要负责平台业务逻辑数据的存储。 - 数据存储部分–缓存数据库:项目采用
Redis
作为缓存数据库,主要用来支撑实时推荐系统部分对于数据的高速获取需求。 - 离线推荐部分–离线统计服务:批处理统计性业务采用
Spark Core
+Spark SQL
进行实现,实现对指标类数据的统计任务。 - 离线推荐部分–离线推荐服务:离线推荐业务采用
Spark Core
+Spark MLlib
进行实现,采用ALS算法进行实现。 - 实时推荐部分–日志采集服务:通过利用
Flume-ng
对业务平台中用户对于商品的一次评分行为进行采集,实时发送到Kafka
集群。 - 实时推荐部分–消息缓冲服务:项目采用
Kafka
作为流式数据的缓存组件,接受来自Flume
的数据采集请求。并将数据推送到项目的实时推荐系统部分。 - 实时推荐部分–实时推荐服务:项目采用
Spark Streaming
作为实时推荐系统,通过接收Kafka
中缓存的数据,通过设计的推荐算法实现对实时推荐的数据处理,并将结构合并更新到MongoDB
数据库。
二、项目数据流程
- 【系统初始化部分】
0. 通过Spark SQL
将系统初始化数据加载到MongoDB
中。 - 【离线推荐部分】
- 可以通过
Azkaban
实现对于离线统计服务以及离线推荐服务的调度,通过设定的运行时间完成对任务的触发执行。 - 离线统计服务从
MongoDB
中加载数据,将【商品平均评分统计】、【商品评分个数统计】、【最近商品评分个数统计】三个统计算法进行运行实现,并将计算结果回写到MongoDB
中;离线推荐服务从MongoDB
中加载数据,通过ALS
算法分别将【用户推荐结果矩阵】、【影片相似度矩阵】回写到MongoDB
中。
- 可以通过