五、推荐系统通用技术架构
一个大量借鉴Netflix架构的推进系统架构。其 数据流图 如下:
数据源
系统的数据源,主要有 三个:
- 前端的打点日志,以Kafka流形式的数据
- 物品内容数据:存储在MySQL中的业务的物品本身的内容数据,如id、标签、图片等等
- 来自web系统的用户画像数据,存在Hbase,包含两类:
- 用户自身的人口属性的数据,性别、年龄、职业
- 根据用户历史行为,算出用户偏好的数据
前端的打点日志进入kafka流之后,有两个分发:
- 一个进入近线计算层,主要是Spark Streaming(近线层)
- 接收的有3个输入:
- 打点日志
- HIVE中的离线历史数据
- 离线训练好的预估模型。
- 可以在近线层完成他们的耦合和计算,在秒的级别实现了海量数据、机器学习模型以及实时性的组合 。
- 计算结果有3个:
- 用户或者物品的特征向量
- 给用户更新的排序列表
- 召回索引
- 接收的有3个输入:
- 一个进入Hadoop的HDFS,进行存储(离线层