大数据处理系统架构
大数据处理系统面临挑战
- 如何利用信息技术等手段处理非结构化和半结构化数据
- 如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模
- 数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响
大数据处理系统架构特征
- 鲁棒性和容错性
- 低延迟读取和更新能力
- 横向扩容
- 通用性
- 延展性
- 即席查询能力
- 最少维护能力
- 可调式性
Lambda架构
Lambda架构用于同时处理离线和实时数据,可容错,可扩展的分布式系统,具备强鲁棒性和低延迟和持续更新。
Lambda架构分为三层:批处理层、加速层、服务层
批处理层核心功能:存储数据集和生成Batch View
主数据集中数据必须具备以下三个属性:数据是原始的、数据是不可变的、数据永远是真实的
Lambda架构优缺点:
优点:容错性好,查询灵活度高,易伸缩、易扩展
缺点:全场景覆盖带来的编码开销,针对具体场景重新离线训练一遍益处不大,重新部署和迁移成本很高
Kappa架构
Kappa不同于Lambda同时计算和批计算并合并视图,其只会通过流计算一条的数据链路计算并产生视图。
Kappa架构原理:在Lambda上进行优化,删除Batch Layer架构,将数据通道以消息队列进行替代,依旧以流处理为主,数据在数据湖层面进行了存储,当需要进行离线分析或者再次计算时,将数据湖的数据再次经过消息队列重播一次即可。
从使用场景看,Kappa架构与Lambda架构的两点主要区别:
- Kappa 不是Lambda的替代架构,是其简化版本,Kappa放弃了对批处理的支持,更擅长业务本身为增量数据写入场景的分析需求,例如各种时序数据场景,天然存在时间窗口的概念,流式计算直接满足其实时计算和历史补偿任务需求
- Lambda直接支持批处理,更适合对历史数据分析查询的场景,比如数据分析师需要按任意条件组合对历史数据进行探索性的分析,并且有一定的实时性需求,期望尽快得到分析结果,批处理可以更直接高效地满足这些需求
Lambda架构和Kappa架构对比
对比内容 | Lambda架构 | Kappa架构 |
---|---|---|
复杂度与开发、维护成本 | 需要维护两套系统(引擎),复杂度高、开发、维护成本高 | 只需要维护一套系统(引擎),复杂度低、开发、维护成本低 |
计算开销 | 需要一直运行批处理和实时计算,计算开销大 | 必要时进行全量计算,计算开销相对较小 |
实时性 | 满足实时性 | 满足实时性 |
历史数据处理能力 | 批式全量处理,吞吐量大,历史数据处理能力强 | 流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱 |
软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)
- 第一章-绪论
- 第二章-计算机系统基础知识(一)
- 第二章-计算机系统基础知识(二)
- 第三章-信息系统基础知识
- 第四章-信息安全技术基础知识
- 第五章-软件工程基础知识(一)
- 第五章-软件工程基础知识(需求工程和系统分析与设计)
- 第五章-软件工程基础知识(软件测试、净室软件工程、基于构件的软件工程、 软件项目管理)
- 第六章-数据库设计基础知识(数据库基本概念、关系数据库)
- 第六章-数据库设计基础知识(数据库设计)
- 第七章-系统架构设计基础知识(基于架构的软件开发方法)
- 第七章-系统架构设计基础知识(架构风格、复用)
- 第八章-系统质量属性与架构评估
- 第九章-软件可靠性基础知识
- 第十章-软件架构的演化和维护
- 第十一章-未来信息综合技术
- 第十二章-信息系统架构设计理论和实践
- 第十三章-层次式架构设计理论与实践
- 第十四章-云原生架构设计理论与实践
- 第十五章-面向服务架构设计理论与实践
- 第十六章-嵌入式系统架构设计理论与实践
- 第十七章-通信系统架构设计理论与实践
- 第十八章-安全架构设计理论与实践