文章目录

  • 概述
  • 区别
    • Lambda架构:
    • Kappa架构:
    • 总结
  • 适用场景:
  • 案例:
  • 小结


概述

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架构以流处理为主,实现低延迟的实时计算,但对历史数据的处理相对较弱。

BDCC - Lambda VS Kappa相关推荐

  1. 一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比

    在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代, ...

  2. Lambda架构Kappa架构

    Lambda架构 Lambda 是用Nathan Marz(实时处理框架storm的作者) 提出的用于同时处理离线和实时的数据的,可容错的,可扩展的分布式系统.它具备强鲁棒性,提供低延迟和持续更新.它 ...

  3. 大数据三种主流架构(Lambda、Kappa、IOTA)

    文章目录 前言 Lambda架构 Lambda架构的介绍 Lambda架构的关键性 Lambda的三层架构 Lambda的三层架构 Speed Layer 速度层 Serving layer 服务层 ...

  4. 大数据架构Lambda、kappa、iota架构

    1.流式架构传统大数据架构 优点:简单,易懂,对于BI系统来说,基本思想没有发生变化,变化的仅仅是技术选型,用大数据架构替换掉BI的组件. 缺点:对于大数据来说,没有BI下如此完备的Cube架构,虽然 ...

  5. 实时数仓之 Kappa 架构与 Lambda 架构

    大家好,我是球球.今天,我们先了解一下数据仓库架构的演变过程,本文主要从五个方面进行介绍 数据仓库概念 离线大数据架构 Lambda 架构 Kappa 架构 Lambda 架构与 Kappa 架构的对 ...

  6. 实时数仓之 Kappa 架构与 Lambda 架构(建议收藏!)

    大家好,我是土哥. 2021 年 1月份,给大家重点分享一下离线数仓与实时数仓的内容.今天,我们先了解一下数据仓库架构的演变过程,本文主要从五个方面进行介绍 数据仓库概念 离线大数据架构 Lambda ...

  7. hadoop学习之旅1

    大数据介绍 大数据本质也是数据,但是又有了新的特征,包括数据来源广.数据格式多样化(结构化数据.非结构化数据.Excel文件.文本文件等).数据量大(最少也是TB级别的.甚至可能是PB级别).数据增长 ...

  8. 大数据和数据库的理解文章收藏

    (1)  基本的大数据和数据库的定义,概念的等的区别 https://cloud.tencent.com/developer/news/397291 主要是将大数据比喻为: "大海扑鱼&qu ...

  9. 熬夜精心整理的一线大厂大数据、人工智能全套教程下载(含视频+源码)!!...

    如今随着环境的改变,也经常关注技术圈的发展,但自己适合的技术发展道路该怎么走,也算有个方向了. 但是技术有自己的发展周期,众所周知的很多语言技术已经在长久的历史发展中掩埋,这期间不少的程序员也走出的自 ...

最新文章

  1. 如何让AI教机器自己玩俄罗斯方块?
  2. 可以分屏的软件_分享一款非常好用,且小巧的分屏软件
  3. 天然气阶梯是按年还是按月_社保断缴了,还有补缴的机会?新规下,今年起按这5种方式处理...
  4. c语言二维图形变换程序,【计算机图形学】3-2 二维几何变换根本代码
  5. SAP Fiori attachment rename debug
  6. c语言 增删查 案例,C语言实现单链表的增删查改
  7. 阿里P8架构师谈:MongoDB、Hbase、Redis等NoSQL优劣势、应用场景
  8. 首次披露!阿里线下智能方案进化史
  9. python电影推荐系统的设计与实现_一种电影推荐系统的设计与实现
  10. ArcGIS 10.2数字化线状要素时自己主动拼接成一条线
  11. C++常见面试题-30道
  12. 异常mongodb:Invalid BSON field name XXXXXX:YYYYY.zz
  13. 在DOS下如何加载SATA光驱驱动
  14. python生成个性二维码学习笔记
  15. 深入浅出JMS(一)——JMS简要
  16. 项目管理——N个模板
  17. 京东下单接口sdk java,Flutter 插件开发-接入京东SDK唤醒(ios篇)
  18. 中文字体的FontMetrics解析
  19. java后端getmonth_Java中的MonthDay getMonth()方法
  20. PHP 的 SAPI 是个什么东西(转)

热门文章

  1. 大学校园里的十种傻学生
  2. 阿里巴巴国际站 | 基础操作知识
  3. Python编程之静态变量的使用
  4. 搜狗视频-电视剧排行版首页改进报告
  5. python中可选参数和可变参数_Python函数中的可变长参数详解
  6. Angular ngIf ngSwitch ngForOf
  7. 几种相机模型:针孔相机模型、双目相机模型、RGB-D相机——SLAM学习笔记5
  8. 3. 全向相机模型Omnidirectional Camera Model
  9. python one hot编码_对python sklearn one-hot编码详解
  10. git 拉取远程分支到本地及本地切换分支