【大数据技术与推荐系统(9)】推荐系统与Lambda架构
文章目录
背景介绍
- 电子商务网站
- 浏览记录、购买记录等
- 推荐平台
- 将各种数据整合在一起,以便于挖掘,推荐和广告
推荐系统基本架构
数据加载
- 数据源多样性
- HDFS:用户点击日志等
- MySQL/Oracle:用户基本信息、用户购买记录等
- 数据加载
- 将不同的数据源中的数据导入Hbase
- Hbase中以用户为单位组织数据
- 实现方案
- MapReduce并行导入
- 问题:与MySQL并发连接数过多,怎么办?(代理!AmoebaforMySQL)
- 多线程自己实现
HBase数据组织
- 以用户为单位组织数据
- Rowkey 为Uid
- 将表分成多个column family
- Basic features :age ,birthday ,address,….
- Click/buy behavior: ids
- 利用hbase 特有的特性
- 设置最大版本数 , 自动删除过期数据
- 根据uid 获取某用户所有信息
- 易于扩展
场景
- 基于规则的推荐
- 北京地区 , 年龄在18~25 岁的女士 , 推荐某个商品
- 基于模型的广告推荐
- 逻辑回归 :
- 输入性别 , 年龄 , 点击和购买记录
- 是否会购买商品X
- 计算模型
- MapReduce 或Spark
导入服务层
- 为什么不直接让Hbase提供服务
- RegionServer挂掉,一段时间内不能对外服务
- HBase负载过重
- 可选的服务层
- Memcached、redis
- 自己进行sharding,replication等
- Cassandra、couchbase
- 自动sharding和replication
- 如何调优,运维等
推荐平台基本架构改进:LA