电影推荐
应用技术:Spring+MongoDB+Redis+Elasticsearch+Flume+Kafka+Spark Streaming
项目描述:该项目以某电影公司网站的真实业务数据架构为基础,构建一个电影推荐系统,包含了离线推荐和实时推荐系统,利用协同过滤算法以及基于内容的推荐算法来提供混合推荐。提供了从前端应用、后端服务、算法设计与实现、平台部署等多方位的闭环的业务实现。
项目实现:
1.离线推荐:从MongoDB中加载数据,将电影平均评分统计、电影评分个数统计、最近电影评分个数统计三个统计算法进行运行实现,并将计算结果回写到 MongoDB中;离线推荐服务从 MongoDB中加载数据,通过 ALS 算法分别将用户推荐结果矩阵、影片相似度矩阵回写到 MongoDB中。
2.实时推荐:从综合业务服务的运行日志中读取日志更新,并将更新的日志实时推送到Kafka 中;Kafka 在收到这些日志之后,通过 KafkaStream程序对获取的日志信息进行过滤处理,获取用户评分数据流,并发送到另外一个Kafka 队列;Spark Streaming监听 Kafka 队列,实时获取 Kafka 过滤出来的用户评分数据流,融合存储在 Redis中的用户最近评分队列数据,提交给实时推荐算法,完成对用户新的推荐结果计算;计算完成之后,将新的推荐结构和 MongoDB数据库中的推荐结果进行合并。