Big Data - Lambda
Architecture
Batch Layer
- Batch Layer 存储管理主数据集(不可变数据集)和预先批处理好计算好的视图
- Batch Layer 使用可处理大量数据的分布式处理系统预先计算结果
- 通过处理所有的已有历史数据来实现数据的准确性
- 基于完整的数据集来重新计算,能够修复任何错误,然后更新现有的数据视图
- 输出通常存储在只读数据库中,更新则完全取代现有的预先计算好的视图
Speed Layer
- Speed Layer 会实时处理新来的大数据
- Speed Layer 通过提供最新数据的实时视图来最小化延迟
- Speed Layer 生成的数据视图可能不如 Batch Layer 最终生成的视图那么准确和完整
- 在收到数据后立即可用,而当同样的数据被 Batch Layer 处理完成后,在 Speed Layer 的数据可以被替换掉
- 本质上,Speed Layer 弥补了 Batch Layer 所导致的数据视图滞后
Serving Layer
- 所有在 Batch Layer 和 Speed Layer 处理完的结果都输出存储在 Serving Layer 中
- Serving Layer 通过返回 Batch Layer 预先计算的数据视图或从 Speed Layer 处理构建好的数据视图来响应查询
Query
通过 Batch Layer 兼顾了数据的完整性,通过 Speed Layer 弥补了 Batch Layer 的高延迟性 - 实时性
利用 Twitter4J 实时抓取的 Twitter 推文,利用 Apache Kafka 将数据实时推送给 Batch Layer 和 Speed Layer
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.