【大数据技术与推荐系统(4)】推荐系统设计

Lambda架构概述

大数据时代:3V(Volume、Velocity、Variety)——>分布式存储

Twitter工程师Nathan Marz提出,Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境的混合平台,以提供一个实时的数据视图,包括:批处理层、实时处理层、服务层

架构总览:
【大数据技术与推荐系统(4)】推荐系统设计
架构实现总览:
【大数据技术与推荐系统(4)】推荐系统设计
应用举例:信用卡欺诈系统

【大数据技术与推荐系统(4)】推荐系统设计

Lambda架构之批处理层

【大数据技术与推荐系统(4)】推荐系统设计
特点:

  • 数据不可变(append only)
  • 可进行任何计算
  • 水平扩展
    • 数据量大
  • 高延迟
    • 根据计算量和数据量的不同,运行时间可能几分钟到几个小时

日志收集Flume
【大数据技术与推荐系统(4)】推荐系统设计
数据同步工具

【大数据技术与推荐系统(4)】推荐系统设计
分布式存储

【大数据技术与推荐系统(4)】推荐系统设计

分布式计算
【大数据技术与推荐系统(4)】推荐系统设计
产生视图

【大数据技术与推荐系统(4)】推荐系统设计
数据序列化

  • 为数据设置schema
    • 数据一致性
    • 数据合法性验证(读写规范数据)
    • 避免数据损坏
  • 选择序列化框架
    • Thrift(facebook)
    • Protocol buffer(google)
    • Avro(apache)

视图数据库

  • HBase
  • Cassandra
  • Impala
  • Redis/memcache
  • MySQL

Lambda架构之实时处理层

【大数据技术与推荐系统(4)】推荐系统设计
特点

  • 流式计算
  • 持续计算
  • 存储和分析某个窗口期内的数据
    • 比如五分钟内
  • 最终正确性(Eventual accuracy)
    • 有些算法很难实时运算,此时采用估算值即可

实时数据收集
【大数据技术与推荐系统(4)】推荐系统设计
实时数据分析
【大数据技术与推荐系统(4)】推荐系统设计
Spark Streaming

视图存储数据库

  • HBase
  • Cassandra
  • Impala
  • Redis/memcache
  • MySQL

Lambda架构之服务层

特点

  • 支持随机读
  • 需要在非常短的时间内返回结果
  • 读取batch layer和speed layer结果,并对其归并
    【大数据技术与推荐系统(4)】推荐系统设计

Lambda架构实现1
【大数据技术与推荐系统(4)】推荐系统设计
Lambda架构实现2

【大数据技术与推荐系统(4)】推荐系统设计