# MovieRecommendSystem
## 项目以推荐系统建设领域知名的经过修改过的MovieLens数据集作为依托,以电影网站真实业务数据架构为基础,包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。提供了从前端应用、后台服务、算法设计实现、平台部署等多方位的闭环的业务实现
### 【用户可视化】 :主 要 负 责实 现 和 用 户 的 交 互 以 及业 务 数 据 的 展 示 , 主 体采 用AngularJS2进行实现,部署在Apache服务上。
### 【综合业务服务】:主要实现JavaEE层面整体的业务逻辑,通过Spring进行构建,对接业务需求。部署在Tomcat上。
### 【数据存储部分】业务数据库:项目采用广泛应用的文档数据库MongDB作为主数据库,主要负责平台业务逻辑数据的存储。
### 【搜索服务器】:项目爱用ElasticSearch作为模糊检索服务器,通过利用ES强大的匹配查询能力实现基于内容的推荐服务。###
### 【缓存数据库】:项目采用Redis作为缓存数据库,主要用来支撑实时推荐系统部分对于数据的高速获取需求。
### 【离线推荐部分】离线统计服务:批处理统计性业务采用Spark Core +Spark SQL进行实现,实现对指标类数据的统计任务。
* 离线推荐服务:离线推荐业务采用Spark Core +Spark MLlib进行实现,采用ALS算法进行实现。
+ 工作调度服务:对于离线推荐部分需要以一定的时间频率对算法进行调度,采用Azkaban进行任务的调度。
### 【实时推荐部分】日志采集服务:通过利用Flume-ng对业务平台中用户对于电影的一次评分行为进行采集,实时发送到Kafka集群。
* 消息缓冲服务:项目采用Kafka作为流式数据的缓存组件,接受来自Flume的数据采集请求。并将数据推送到项目的实时推荐系统部分。
+ 实时推荐服务:项目采用Spark Streaming作为实时推荐系统,通过接收Kafka中缓存的数据,通过设计的推荐算法实现对实时推荐的数据处理,并将结构合并更新到MongoDB数据库
***
### 【系统初始化部分】
0. 通过SparkSQL将系统初始化数据加载到MongoDB和ElasticSearch中。
### 【离线推荐部分】
1. 通过Azkaban实现对于离线统计服务以离线推荐服务的调度,通过设定的运行时间完成对任务的触发执行。
2. 离线统计服务从MongoDB中加载数据,将【电影平均评分统计】、【电影评分个数统计】、【最近电影评分个数统计】三个统计算法进行运行实现,并将计算结果回写到MongoDB中;离线推荐服务从MongoDB中加载数据,通过ALS算法分别将【用户推荐结果矩阵】、【影片相似度矩阵】回写到MongoDB中。
### 【实时推荐部分】
3. Flume从综合业务服务的运行日志中读取日志更新,并将更新的日志实时推送到Kafka中;Kafka在收到这些日志之后,通过kafkaStream程序对获取的日志信息进行过滤处理,获取用户评分数据流【UID|MID|SCORE|TIMESTAMP】,并发送到另外一个Kafka队列;SparkStreaming监听Kafka队列,实时获取Kafka过滤出来的用户评分数据流,融合存储在Redis中的用户最近评分队列数据,提交给实时推荐算法,完成对用户新的推荐结果计算;计算完成之后,将新的推荐结构和MongDB数据库中的推荐结果进行合并。
### 【业务系统部分】
4. 推荐结果展示部分,从MongoDB、ElasticSearch中将离线推荐结果、实时推荐结果、内容推荐结果进行混合,综合给出相对应的数据。
5. 电影信息查询服务通过对接MongoDB实现对电影信息的查询操作。
6. 电影评分部分,获取用户通过UI给出的评分动作,后台服务进行数据库记录后,一方面将数据推动到Redis群中,另一方面,通过预设的日志框架输出到Tomcat中的日志中。
7. 项目通过ElasticSearch实现对电影的模糊检索。
8. 电影标签部分,项目提供用户对电影打标签服务
***
### 项目环境
* CentoOS-7.2
+ JDK-1.8
- Spark-2.11.8
* Scala-2.11.8
+ Zookeeper-3.4.10
- Kafka-2.11-0.11.0.0
* Redis-3.0.4
+ MongoDB-4.4.1
- ElasticEsarch-5.6.2
* Flume-1.7.0
+ IDEA-2020
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!
资源推荐
资源详情
资源评论
收起资源包目录
计算机课程毕设:基于spark的电影推荐系统,包括基于ALS、LFM的离线推荐、实时推荐.zip (5969个子文件)
access_log.2019-04-04 53KB
RecommenderService.class 13KB
MovieRestApi.class 11KB
MovieService.class 8KB
TagService.class 7KB
RatingService.class 7KB
UserService.class 6KB
Application.class 4KB
Configure.class 4KB
UserRestApi.class 3KB
Movie.class 3KB
User.class 2KB
Rating.class 2KB
Tag.class 2KB
Constant.class 1KB
MovieRatingRequest.class 1KB
Recommendation.class 914B
TopGenresRecommendationRequest.class 904B
RegisterUserRequest.class 892B
SearchRecommendationRequest.class 889B
LoginUserRequest.class 883B
MovieHybridRecommendationRequest.class 816B
MovieRecommendationRequest.class 798B
UserRecommendationRequest.class 795B
RateMoreRecommendationRequest.class 601B
HotRecommendationRequest.class 586B
NewRecommendationRequest.class 586B
fonts.css 291KB
demo.css 2KB
movies.csv 1.99MB
ratings.csv 1007KB
tags.csv 14KB
icomoon.eot 1.16MB
icomoon.0a75ccae458aa5a90871.eot 1.16MB
glyphicons-halflings-regular.f4769f9bdb7466be6508.eot 20KB
.gitattributes 121B
.gitignore 237B
demo.html 4.38MB
index.html 1KB
favicon.ico 37KB
DataLoader.iml 22KB
OfflineRecommender.iml 19KB
ContentRecommender.iml 19KB
StreamingRecommender.iml 18KB
StatisticsRecommender.iml 17KB
businessServer.iml 9KB
KafkaStreaming.iml 2KB
recommender.iml 1KB
MovieRecommendSystem.iml 939B
MovieRestApi.java 10KB
RecommenderService.java 9KB
MovieService.java 5KB
TagService.java 4KB
RatingService.java 4KB
UserService.java 4KB
Configure.java 3KB
Application.java 3KB
Movie.java 2KB
UserRestApi.java 2KB
User.java 2KB
Application.java 1KB
Constant.java 1KB
Rating.java 1KB
Tag.java 1KB
LogProcess.java 880B
MovieRatingRequest.java 716B
Recommendation.java 603B
RegisterUserRequest.java 593B
LoginUserRequest.java 587B
TopGenresRecommendationRequest.java 531B
SearchRecommendationRequest.java 505B
MovieHybridRecommendationRequest.java 493B
MovieRecommendationRequest.java 481B
UserRecommendationRequest.java 479B
RateMoreRecommendationRequest.java 315B
HotRecommendationRequest.java 305B
NewRecommendationRequest.java 305B
package-info.java 74B
picture.jpg 558KB
picture.jpg 553KB
picture.jpg 462KB
picture.jpg 460KB
picture.jpg 456KB
picture.jpg 451KB
picture.jpg 450KB
picture.jpg 441KB
picture.jpg 429KB
picture.jpg 409KB
picture.jpg 402KB
picture.jpg 399KB
picture.jpg 384KB
picture.jpg 382KB
picture.jpg 373KB
picture.jpg 370KB
picture.jpg 370KB
picture.jpg 363KB
picture.jpg 361KB
picture.jpg 361KB
picture.jpg 358KB
picture.jpg 340KB
共 5969 条
- 1
- 2
- 3
- 4
- 5
- 6
- 60
资源评论
白话机器学习
- 粉丝: 8762
- 资源: 7682
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的异常姿势识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 隐藏文件展示工具,用来展示被病毒隐藏的文件
- 基于Matlab的图像分割系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB指纹门禁GUI设计源码+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的仪表指数识别系统霍夫曼变换+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB 的霍夫曼变换答题卡识别带GUI界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB 疲劳驾驶检测专识别GUI源码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于matlab的虫害侵蚀系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功