【大数据技术与推荐系统(4)】推荐系统设计
Lambda架构概述
大数据时代:3V(Volume、Velocity、Variety)——>分布式存储
Twitter工程师Nathan Marz提出,Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境的混合平台,以提供一个实时的数据视图,包括:批处理层、实时处理层、服务层
架构总览:
架构实现总览:
应用举例:信用卡欺诈系统
Lambda架构之批处理层
特点:
- 数据不可变(append only)
- 可进行任何计算
- 水平扩展
- 数据量大
- 高延迟
- 根据计算量和数据量的不同,运行时间可能几分钟到几个小时
日志收集Flume
数据同步工具
分布式存储
分布式计算
产生视图
数据序列化
- 为数据设置schema
- 数据一致性
- 数据合法性验证(读写规范数据)
- 避免数据损坏
- 选择序列化框架
- Thrift(facebook)
- Protocol buffer(google)
- Avro(apache)
视图数据库
- HBase
- Cassandra
- Impala
- Redis/memcache
- MySQL
Lambda架构之实时处理层
特点
- 流式计算
- 持续计算
- 存储和分析某个窗口期内的数据
- 比如五分钟内
- 最终正确性(Eventual accuracy)
- 有些算法很难实时运算,此时采用估算值即可
实时数据收集
实时数据分析
Spark Streaming
视图存储数据库
- HBase
- Cassandra
- Impala
- Redis/memcache
- MySQL
Lambda架构之服务层
特点
- 支持随机读
- 需要在非常短的时间内返回结果
- 读取batch layer和speed layer结果,并对其归并
Lambda架构实现1
Lambda架构实现2