Saprk和Flink的区别

embedded/2024/12/30 2:15:07/
1 、设计理念方面
Spark 的技术理念是使用微批来模拟流的计算,基于 Micro-batch ,数据流以时间为单位被切分为一个个 批次,通过分布式数据集RDD 进行批量处理,是一种伪实时。
Flink 是基于事件驱动的,是面向流的处理框架, Flink 基于每个事件一行一行地流式处理,是真正的流式 计算。另外它也可以基于流来模拟批进行计算实现批处理。
2 、架构方面
Spark 在运行时的主要角色包括: Master Worker Driver Executor
Flink 在运行时主要包含: Jobmanager Taskmanager Slot
3 、流处理方面
Spark 基于微批量处理,把流数据看成是一个个小的批处理数据块分别处理,所以延迟性只能做到秒级。
Flink 基于每个事件处理,每当有新的数据输入都会立刻处理,是真正的流式计算,支持毫秒级计算。 由于相同的原因,Spark 只支持基于时间的窗口操作(处理时间或者事件时间),而 Flink 支持的窗口操 作则非常灵活,不仅支持时间窗口,还支持基于数据本身的窗口(另外还支持基time count、 session,以及 data-driven 的窗口操作),开发者可以自由定义想要的窗口操作。
4 、任务调度方面
Spark Streaming 支持的时间机制有限,只支持处理时间。使用 processing time 模拟 event time 必然会有 误差, 如果产生数据堆积的话,误差则更明显。
Flink 支持三种时间机制:事件时间,注入时间,处理时间,同时支持 watermark 机制处理迟到的数据 , 说明Flink 在处理乱序大实时数据的时候 , 更有优势。
5 、容错机制方面
Spark Streaming 的容错机制是基于 RDD 的容错机制,会将经常用的 RDD 或者对宽依赖加 Checkpoint 。利 用Spark Streaming direct 方式与 Kafka 可以保证数据输入源的,处理过程,输出过程符合 exactly once
Flink 则使用两阶段提交协议来保证 exactly once
6 、吞吐量与延迟方面
Spark 是基于微批的,而且流水线优化做的很好,所以说他的吞入量是最大的,但是付出了延迟的代 价,它的延迟是秒级;
Flink是基于事件的,消息逐条处理,而且他的容错机制很轻量级,所以他能在兼顾高吞吐量的同时又有 很低的延迟,它的延迟能够达到毫秒级;
7 、迭代计算方面
Spark 对机器学习的支持很好,因为可以在内存中缓存中间计算结果来加速机器学习算法的运行。但是 大部分机器学习算法其实是一个有环的数据流,在Spark 中,却是用无环图来表示。而 Flink 支持在运行 时间中的有环数据流,从而可以更有效的对机器学习算法进行运算。
8 、时间机制方面
Spark Streaming 支持的时间机制有限,只支持处理时间。
Flink 支持了流处理程序在时间上的三个定义:处理时间、事件时间、注入时间。同时也支持 watermark 机制来处理滞后数据。

http://www.ppmy.cn/embedded/148796.html

相关文章

Flink 的并行度配置低于Kafka 分区数会出现的问题

在 Flink 中使用 Kafka 数据源时,设置的 Kafka 分区数 和 Flink 的并行度 会直接影响数据的处理方式。如果你的 Kafka 分区数大于 Flink 的并行度,可能会引发以下问题: 1. Kafka 分区与 Flink 任务不匹配 Flink 在读取 Kafka 数据时&#xf…

Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案

1. 引言 1.1 背景介绍:MySQL与Redis在高性能场景下的结合 在现代互联网应用中,MySQL作为关系型数据库,承担了大量业务数据的存储任务。然而,随着业务的增长,海量数据的查询性能成为一个瓶颈。为了应对高并发和低延迟…

OpenMV与STM32通信全面指南

目录 引言 一、OpenMV和STM32简介 1.1 OpenMV简介 1.2 STM32简介 二、通信协议概述 三、硬件连接 3.1 硬件准备 3.2 引脚连接 四、软件环境搭建 4.1 OpenMV IDE安装 4.2 STM32开发环境 五、UART通信实现 5.1 OpenMV端编程 5.2 STM32端编程 六、SPI通信实现 6.1…

Partition Strategies kafka分区策略

原文链接 Kafka Partition Strategy 分区策略简介 分区增加了并行化并允许Kafka扩展。存在许多将消息分发到主题分区的策略。在我们深入研究每种策略的背景之前,下面的表格给出了每种策略的简要概述。 Kafka消息由生产者发送,由消费者接收。这两种策略…

java全栈day20--Web后端实战(Mybatis基础2)

一、Mybatis基础 1.1辅助配置 配置 SQL 提示。 默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置: 现在就有sql提示了 新的问题 产生原因: Idea 和数据库没有建立连接,不识别表信息 解决方式:在 Idea 中配置 MySQL 数…

白牛空壳企业数据库介绍

目录 一、研发背景 二、主要应用场景、 (一)信贷风险管理 (二)营商环境治理 (三)招商项目审查 (四)市场活力研究 三、空壳企业特征分析 (一)企业主体异常 &am…

el-table中合并垂直方向的单元格

el-table中合并垂直方向的单元格 一、合并垂直方向单元格&#xff0c;有相同字段的合并一起 一、合并垂直方向单元格&#xff0c;有相同字段的合并一起 合并一起的都有相同的字段mergeType <el-tableclass"merge-table":data"tableData"v-loading"…

【kubernetes】资源管理方式

目录 1. 说明2. 命令式对象管理3. 命令式对象配置4. 声明式对象配置5. 三种方式的对比 1. 说明 1.在Kubernetes&#xff08;k8s&#xff09;中&#xff0c;资源管理是一个核心功能&#xff0c;它允许用户通过操作资源来管理Kubernetes集群。2.Kubernetes将所有的内容都抽象为资…