BDCC - Lambda VS Kappa

news2024/11/24 20:31:03

文章目录

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源C#代码生成器,SmartSoftHelp 开发辅助工具

开源代码生成器,支持自定义生成代码,开源生成代码,自己编写生成格式,最方便的代码生成器 下载地址: 百度网盘 请输入提取码

《时间从来不语,却回答了所有问题》笔记三

目录 感悟 经典摘录 假若我再上一次大学 不完满才是人生 走运与倒霉 毁誉 我的座右铭 二月兰 观天池 火车上观日出 感悟 人这个万物之灵却偏偏有了感情,有了感情就有了悲欢。自古及今,海内海外,一个百分之百完满的人生是没有的&…

《Java虚拟机学习》JVM虚拟机是如何执行方法

1. 重载与重写方法 重载 重载 :同一个类中,方法名相同,形参列表不用,与返回值无关 对于重载方法的执行,JVM遵循下面的三条规则: 在不考虑对基本类型自动装拆箱(auto-boxing,auto-…

图嵌入表示学习—Graph Embeddings

Embedding Entire Graphs 一、图嵌入向量基本概念 与Node Embeddings不同,Graph Embeddings是对整个图或子图进行编码而忽略其中的节点。应用场景包括异常检测或分子有毒检测。 二、对Node Embeddings求和或求和后平均 如图,首先对图/子图中的节点进行…

shell与shell script 学习总结

文章目录 shell与shell script 学习总结vivim可视化区块多文件编辑多窗口功能vim环境设置与记录中文编码问题语系编码转换 Shell的变量功能变量的使用与设置echo(变量的使用)变量设置的规则 环境变量的功能env(观察环境变量)set(观察所有变量)unset(取消变量) locale(语系变量)…

【Hello Network】TCP协议相关理解

作者:小萌新 专栏:网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:补充下对于TCP协议的各种理解 TCP协议相关实验 TCP相关试验理解CLOSE_WAIT状态理解TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法理解listen的…

分布式 03 富文本处理插件和图片文件上传

01.使用富文本编辑器来上传图片文件。 02.最开始在html文件中去使用相关富文本的插件。 引入相关文件 <link href"/js/kindeditor-4.1.10/themes/default/default.css" type"text/css" rel"stylesheet"> <script type"text/java…

Redis面试题(上)

1.什么是 Redis&#xff1f; Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 Strin…

Python机器学习入门 -- 支持向量机学习笔记

文章目录 前言一、支持向量机简介二、支持向量机的数学原理1. 距离解算2. 目标函数3. 约束下的优化求解4. 软间隔优化5. 核函数变换 三、Python实现支持向量机1. 惩罚力度对比2. 高斯核函数3. 非线性SVM 总结 前言 大部分传统的机器学习算法都可以实现分类任务&#xff0c;但这…

干货丨你真的了解反应持续时间吗?

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 在今天的推文里&#xff0c;要给大家分享的是一种灵活、免费的心理科学工具——反应持续时间&#xff0c;快来一起看看哦~ 01 导读 简单按键的反应持续时间是一种容易获得但未被充分利用…

C++相比于C语言增加的8个小特性(详解)

C相比于C语言增加的8个小特性&#xff08;详解&#xff09; 文章目录 C相比于C语言增加的8个小特性&#xff08;详解&#xff09;一、命名空间二、C输入和输出三、缺省参数四、函数重载五、引用六、内联函数七、auto关键字八、指针空值nullptr总结 一、命名空间 c的命名空间是…

从一到无穷大 #8 Arrow,Parquet and ORC

文章目录 引言ArrowParquetNested EncodingRepetition LevelsDefinition Levels 列化压缩 ORC 引言 以我的机器为例来做一个简单的计算&#xff1a; 执行cat /proc/cpuinfo |grep MHz|uniq可以看到目前机器中CPU频率&#xff0c;得到值 2494.140MHZ&#xff5e;2494140000HZ&…

【算法】——全排列算法讲解

前言&#xff1a; 今天&#xff0c;我给大家讲解的是关于全排列算。我会从三个方面去进行展开&#xff1a; 首先&#xff0c;我会给大家分析关于全排列算法的思想和定义&#xff1b;紧接着通过手动实现出一个全排列代码来带大家见见是怎么实现的&#xff1b;最后我会给出两道题…

ESP32单片机入门篇

目录 一、ESP32单片机的基本概念 1.双核架构 2. Wi-Fi和蓝牙功能 3. 集成多种外设 4. 支持多种操作系统 二、开发环境 1. Arduino IDE 2. ESP-IDF 三、开发语言 四、注意事项 五、代码例程 &#xff08;1&#xff09;点亮LED灯 1. 电路图 2. 代码 3. 代码注释 …

【精品】Java-Stream流详解

Java-Stream流详解 如何学会JDK8中的Stream流&#xff0c;用它来提高开发效率&#xff1f;创建不可变的集合&#xff08;Immutable 不可变的&#xff09;场景方法 初试 Stream 流Stream 流的思想Stream 流的作用Stream 流的使用步骤Stream 流的中间方法Stream 流的终结方法 如何…

STM32:利用PWM波控制飞盈电调过程和注意事项

STM32&#xff1a;利用PWM波控制电调过程和注意事项 在进行模型控制的过程中&#xff0c;如四旋翼无人机等&#xff0c;需要用到电机&#xff0c;这些电机需要通过电调来控制电机的转速。在电调模块中带有的说明书一般都是利用遥控器进行控制&#xff0c;有些情况需要自己通过…

【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型

CodeGeeX&#xff1a;用于代码生成的多语言预训练模型 《CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X》 论文地址&#xff1a;https://arxiv.org/pdf/2303.17568.pdf 相关博客 【自然语言处理】【大模型】CodeGeeX&#…

二叉排序树

二叉排序树 文章目录 二叉排序树创建遍历删除完整代码 假如给你一个数列 (7, 3, 10, 12, 5, 1, 9)&#xff0c;要求能够高效的完成对数据的查询和添加。 使用数组 数组未排序&#xff1a; 优点&#xff1a;直接在数组尾添加&#xff0c;速度快。 缺点&#xff1a;查找速度慢. 数…

[图形学] 射线和线段之间的最小距离

1 说在前面 本文的主要内容来自于Unity引擎中Spline功能的一个函数&#xff0c;一开始我难以理解这几个向量运算的作用和几何意义&#xff0c;经过一番思考后总结如下&#xff1a; 该段代码实际上更像是两个直线之间寻找最短距离&#xff0c;然后判断该距离对应的点在其中一条…

STM32利用USB的HID与QT上位机通信

之前使用kingst的逻辑分析仪&#xff0c;打开上位机软件&#xff0c;插上带usb的硬件就可以通信&#xff0c;也不需要打开串口什么的&#xff0c;感觉很方便&#xff0c;于是借用一个周末研究下这个技术。本文主要是用于记录自己学习的过程&#xff0c;顺便分享下学习感悟。 首…