笔记 | 推荐系统 —— lambda架构

【编程开发】某风网 大数据推荐系统算法工程师 项目实战
笔记 | 推荐系统 —— lambda架构

1 Lambda架构

1.Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境的混合平台,以提供一个实时的数据视图。
2.分层架构:批处理层、实时处理层、服务层
笔记 | 推荐系统 —— lambda架构
一些框架:
笔记 | 推荐系统 —— lambda架构

应用举例

笔记 | 推荐系统 —— lambda架构

2 批处理层

笔记 | 推荐系统 —— lambda架构
1.数据不可变
2.可以进行任何计算
3.水平扩展——数据量大
4.高延迟——根据计算量和数量不同,运行时间可能几分钟到几个小时
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
HDFS不适合存储大量的小文件,适合连续的流式的访问。HBASE 满足随机的访问,满足海量数据的存储。二者互补

笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
存储量比较大可以考虑HBASE,但是不能汇总,属于NoSQL;
Cassandra数据NoSQL,没有固定的主节点,就是挂掉一个节点也没有关系;
Impala满足前段交互式的访问,mpp架构;
Redis、memcache高效推送、展现,但是可靠性不高,Redis相对好一些;
MySQL关系型数据库

3 实时处理层

笔记 | 推荐系统 —— lambda架构
1.流式处理:storm
2.持续计算
3.存储和分析某个窗口的数据:比如5分钟内
4.最终确定性:有些算法很难实时计算,此时采用估计值即可
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
批处理层与实时处理层的视图存储数据库相同

4 服务层

1.支持随机读
2.需要在非常短的时间内返回结果
3.读取batch layer 和 speed layer结果,并对其归并

笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构
笔记 | 推荐系统 —— lambda架构