大数据处理系统面临挑战
大数据处理系统架构特征
Lambda架构用于同时处理离线和实时数据,可容错,可扩展的分布式系统,具备强鲁棒性和低延迟和持续更新。
Lambda架构分为三层:批处理层、加速层、服务层
批处理层核心功能:存储数据集和生成Batch View 主数据集中数据必须具备以下三个属性:数据是原始的、数据是不可变的、数据永远是真实的
Lambda架构优缺点: 优点:容错性好,查询灵活度高,易伸缩、易扩展 缺点:全场景覆盖带来的编码开销,针对具体场景重新离线训练一遍益处不大,重新部署和迁移成本很高
Kappa不同于Lambda同时计算和批计算并合并视图,其只会通过流计算一条的数据链路计算并产生视图。 Kappa架构原理:在Lambda上进行优化,删除Batch Layer架构,将数据通道以消息队列进行替代,依旧以流处理为主,数据在数据湖层面进行了存储,当需要进行离线分析或者再次计算时,将数据湖的数据再次经过消息队列重播一次即可。
从使用场景看,Kappa架构与Lambda架构的两点主要区别:
Lambda架构和Kappa架构对比
对比内容 | Lambda架构 | Kappa架构 |
---|---|---|
复杂度与开发、维护成本 | 需要维护两套系统(引擎),复杂度高、开发、维护成本高 | 只需要维护一套系统(引擎),复杂度低、开发、维护成本低 |
计算开销 | 需要一直运行批处理和实时计算,计算开销大 | 必要时进行全量计算,计算开销相对较小 |
实时性 | 满足实时性 | 满足实时性 |
历史数据处理能力 | 批式全量处理,吞吐量大,历史数据处理能力强 | 流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱 |