前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BDCC - Lambda VS Kappa

BDCC - Lambda VS Kappa

作者头像
小小工匠
发布2023-05-09 16:11:29
2800
发布2023-05-09 16:11:29
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构
在这里插入图片描述
在这里插入图片描述

概述

Lambda架构和Kappa架构都是用于处理大数据的架构模式。

Lambda架构使用了批处理和流处理两种不同的处理方式来处理数据。数据首先通过流处理层进行实时处理,然后再通过批处理层进行离线处理,最后将两种处理结果合并起来得到最终的结果。Lambda架构的优点是可以同时处理实时和历史数据,并且可以保证数据的一致性,但是需要维护两套不同的代码和基础设施。

Kappa架构则只使用流处理来处理数据,将所有数据都视为实时数据进行处理。这样可以简化架构,并且可以实现更低的延迟和更高的吞吐量。但是,Kappa架构无法处理历史数据,也无法保证数据的一致性

#
#

区别

主要差异如下:

Lambda架构:

  • 三层架构:
    • Batch层:离线批处理历史数据
    • Serving层:在线服务查询和检索
    • Speed层:实时流式处理
  • 优点:成熟易实现,能处理历史数据
  • 缺点:批流计算需整合,系统复杂

Lambda架构典型的框架和技术主要包括: Batch层:

  • Hadoop:批处理计算和存储框架,用于大规模数据离线处理
  • Hive:数据仓库工具,用于历史数据的离线分析
  • Spark:批处理框架,用于大数据离线计算和处理 Serving层:
  • HBase:列式数据库,用于在线查询和检索
  • Elasticsearch:搜索和分析引擎,用于在线服务和查询 Speed层:
  • Storm:实时流式计算框架,用于实时数据处理
  • Spark Streaming:Spark的流式计算组件,用于实时数据计算
  • Flink:流批一体的大数据计算框架,既可以做批处理也可以做流处理
  • Kafka:消息队列,用于实时数据传输和缓冲 其他:
  • Zookeeper:协调服务,用于Lambda架构中各系统的协调
  • YARN:资源调度平台,用于资源分配和作业调度 所以,Lambda架构 typical 的技术框架主要是:
  • 批处理:Hadoop、Hive、Spark 等
  • 在线服务:HBase、Elasticsearch 等
  • 流计算:Storm、Spark Streaming、Flink 等
  • 消息队列:Kafka
  • 资源调度:YARN
  • 协调服务:Zookeeper 这些框架和技术的组合实现了Lambda架构的三层架构模式

Kappa架构:

  • 全流式处理,无批处理层
  • 数据持续产生,流式计算引擎实时计算

  • 优点:简单无需整合批流计算,低延迟
  • 缺点:对历史数据处理能力较弱
  • 典型技术:Kafka、Flink、Storm等

Kappa架构典型的框架和技术主要包括:

  • Kafka:消息队列,用于实时数据收集和传输
  • Flink:流批一体的计算框架,用于实时数据计算和处理
  • Spark Streaming:Spark的流式计算组件,用于实时数据计算
  • Storm:实时流式计算框架,用于实时数据处理
  • Samza:流式处理框架,基于Kafka和YARN,由LinkedIn开发
  • Beam:统一批流处理模型,实现无缝切换,由Apache开源 其他:
  • YARN:资源调度平台,用于在Kappa架构中资源的分配和调度
  • HDFS:分布式文件系统,用于数据的存储
  • Zookeeper:协调服务,用于Kappa架构中各系统的协调 所以,Kappa架构典型的技术框架主要是:
  • 流式计算:Flink、Spark Streaming、Storm、Samza、Beam 等
  • 消息队列:Kafka
  • 资源调度:YARN
  • 分布式存储:HDFS
  • 协调服务:Zookeeper 这些框架和技术通过流式计算和消息队列实现了Kappa架构的全流式处理模式。 其中,Flink和Spark Streaming作为新一代的流式计算框架,被广泛使用在Kappa架构中。Samza和Beam也具有流计算能力,但使用较少。Storm作为老牌流计算框架,其使用也在逐渐减少。 Kafka作为消息队列,是整个Kappa架构中最为核心的技术,用于收集和传输实时数据流。 所以Kappa架构的关键技术真可以总结为:流计算框架 + Kafka

总结

  • Lambda架构:批处理+流处理,实时与历史数据结合
  • Kappa架构:全流式处理,低延迟实时计算,历史数据处理弱

适用场景:

  • 需要历史数据,选择Lambda架构
  • 实时性要求高,选择Kappa架构

案例:

  • 电商推荐系统:Lambda架构,利用用户历史行为推荐
  • 网络攻击检测:Kappa架构,低延迟实时检测异常

小结

面试可能会问到两种架构的优缺点、适用场景以及典型案例。要理解其背后的设计思想和计算模式,而不仅是表象上的区别。 总之,Lambda架构试图结合批处理和流处理的优点,实现对历史数据和实时数据的结合处理。而Kappa架构以流处理为主,实现低延迟的实时计算,但对历史数据的处理相对较弱。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 区别
    • Lambda架构:
      • Kappa架构:
        • 总结
        • 适用场景:
        • 案例:
        • 小结
        相关产品与服务
        流计算 Oceanus
        流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的企业级实时大数据分析平台,具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点。流计算 Oceanus 以实现企业数据价值最大化为目标,加速企业实时化数字化的建设进程。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档