基于 Spark 的推荐系统源码挺适合做复杂项目练手的,整个架构比较完整,前后端全链路基本都覆盖到了。前端用的是AngularJS 2,虽然版本偏早,但上手快,逻辑清晰。

推荐逻辑用的是协同过滤算法,比如 ALS 和 LFM 这些老牌选手,搭配深度学习的监督学习方法,还加了梯度下降来调优效果。你要是想搞清楚推荐背后的逻辑,看看这个项目挺合适。

MongoDB存储用户和电影数据,Redis负责缓存热点内容,响应也快。ElasticSearch搞全文搜索,那种“你喜欢”式的推荐查找就靠它了。搜索结果出来得挺快,不用担心卡顿。

数据流用的是Kafka,缓存消息挺稳的。Flume搞日志采集,Spark自己离线任务,而调度任务交给Azkaban。整体用Scala写的,服务端部署用Java跑在 Tomcat 上,这种组合现在用得还挺多。

代码里了离线推荐实时推荐,甚至连服务器冷启动也考虑到了。如果你是刚接触 Spark 推荐系统,或者想做毕设、竞赛项目,这套源码真挺香的。

如果你还想拓展思路,可以看看这几个相关资源:

如果你熟悉 Spark 和 Scala,直接开整。如果对推荐算法还不太熟,也可以先看看逻辑怎么跑,再慢慢优化~