【笔记-软考】大数据架构-Lambda与Kappa架构对比

Author:赵志乾
Date:2024-07-28
Declaration:All Right Reserved!!!

1. 简介

        大数据系统架构的设计思想很大程度受技术条件和思维模式的限制;

        Lambda架构在提出初期面向小范围业务,直接将成熟离线处理技术(Hadoop)和实时处理技术(Storm)相结合,用View模型将二者处理后得到的输出结果结合起来,在服务层进行统一后,再开放给上层服务,是相当可行且高效的设计方式。

        而Kappa架构的作者对流式处理系统有着丰富的理论知识和使用经验,基于对流式计算的深入理解,Kappa架构在同一层内进行实时处理和离线处理。

2. 特性比对

对比内容LambdaKappa
开发、维护成本维护两套系统(引擎),复杂度高,开发维护成本高维护一套系统(引擎),复杂度低,开发维护成本低
计算开销一直运行批处理和实时计算,计算开销大必要时进行全量计算,计算开销相对较小
实时性满足实时性满足实时性
历史数据处理能力批式全量处理,吞吐量大,历史数据处理能力强流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱
  • 开发与维护成本:Lambda需要开发维护两套系统,一套负责离线的批处理计算,一般选择Hadoop作为批处理系统,并将处理结果保存到HBase,另一套需要进行实时流式计算,一般选择Storm、Spark作为流处理系统,计算结果保存到Redis中;在全量计算中,批处理系统还需长时间保持运行以保证离线运算结果的正确性,整体开发维护成本较高;而Kappa仅开发维护一套系统,其使用Kafka作为消息中间件,Flink作为流式计算系统,以数据并行和流水线方式执行任意流数据程序,且同时支持批处理和流处理,开发维护成本低;
  • 计算开销:Lambda架构在计算时,需要让数据同时批处理和流处理层系统的运行,且两套系统都不能停机,计算开销大;而Kappa的数据存储只需面对流式计算,且只在必要时进行全量计算,计算消耗小;
  • 实时性:Lambda架构的策略在于使用满足Monoid性质的数据View模型,对批处理层和速度层的输出进行统一管理,这样在新数据到达时,速度层可实时处理得到最新的View,然后和批处理层的View相结合,得到最新的实时结果;其优点是将实时处理变成了批处理和流处理结果的结合,稳定且计算成本可控;而Kappa架构的策略在于使用消息队列进行数据保存,采用并发计算;
  • 历史数据处理能力:Lambda在设计上可以在批处理层对超大规模的历史数据进行批量计算,由于批处理层与速度层使用不同的计算系统,在进行批处理时速度层的实时计算不受影响;而Kappa在设计上使用了消息队列对数据进行缓存,其对数据量和历史数据回溯有性能的制约;

3. 架构选择

        Lambda和Kappa两种架构选择时,主要从业务需求、技术要求、系统复杂度、开发维护成本以及历史数据处理能力等维度考虑;

  • 业务需求与技术要求:若对Hadoop、Spark、Storm等关键技术有强制性依赖,则应选择Lambda,若数据处理偏好于流式计算,又依赖Flink计算引擎,则应选择Kappa;
  • 复杂度:若实时处理与离线处理的结果不能统一,则应选择Lambda,若算法模型参数变动频繁、或者算法模型支持同时执行批处理和流式计算,则应选择Kappa;
  • 开发维护成本:Lambda需要更高的开发维护成本,适合有经济、技术和资源的开发者,而Kappa适合于不希望在开发维护上投入过多成本的开发者;
  • 历史数据处理能力:若需频繁进行海量数据集进行分析,应选择Lambda,若始终使用小规模数据集,则应选择Kappa;
  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫白小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值