大数据学习(78)-spark streaming与flink

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


Flink 和 Spark Streaming****都是用于实时流式数据处理的分布式计算框架,但两者的基本设计思想和内部执行机制有些不同。

Flink 基于流的理念,采用了基于数据流模型的核心运行时引擎。它可以对无界和有界数据流进行有状态的计算。Flink 使用了链式操作来表达运算逻辑,并基于流水线的方式进行任务调度。

Spark Streaming 则是通过微批处理的方式来实现对实时数据流的处理它将数据流切分成很小的批数据,然后提交给 Spark 执行批处理任务。Spark Streaming 基于 RDD 来表达运算逻辑,并通过 Spark 的任务调度机制进行调度。

Flink 的内部把流处理算法表示为数据流图,并以流水线的方式持续运算。而 Spark Streaming 是将流任务拆解为一个个小批的 Spark 任务,这些批任务按时间顺序执行。

两者在fault tolerance 机制上也有区别。Flink 基于检查点机制实现了 exactly-once 语义。而 Spark Streaming 通过 Write ahead logs 实现了至少一次保证。

Flink和Spark Streaming作为两种主流的流计算框架,在实现机制上存在显著区别。Flink是基于流的真正运行时,能够持续地对无界数据流进行计算,**通过Operator Chains实现流式数据流水线化++具备毫秒级的低延迟处理能力。它采用检查点机制实现Exactly-once语义,确保每条数据被精确处理一次,并支持事件时间处理,能够很好地处理乱序事件。++此外,Flink支持丰富的流处理功能,如循环流、流Join等,但需要单独部署和运维。**

相比之下Spark Streaming则基于微批处理模型,将数据流离散为批进行处理,通过RDD拼接批结果来模拟流计算。 其延迟一般在500毫秒以上,采用写前日志实现At-least-once语义,保证每条数据至少被处理一次。Spark Streaming基于批次时间处理,不支持水印和复杂的事件时间窗口操作。虽然其重启后需要重新计算,但可以直接基于Spark集群运行,资源利用更为经济。

在选择Flink或Spark Streaming时,需考虑以下方面:**若需要真正的流处理、低延迟、高精度以及复杂的流处理功能,Flink是更合适的选择;若采用微批方式也能满足需求,且希望与批处理统一学习和使用,共享Spark集群资源,团队更熟悉Spark,则Spark Streaming是可行的选项。**Flink更适合低延迟、高精度的连续流处理,而Spark Streaming更偏向间断性数据流处理。

相关推荐
三块钱079423 分钟前
【原创】通过S3接口将海量文件索引导入elasticsearch
大数据·elasticsearch·搜索引擎·go
W90952 小时前
【8】分块学习笔记
数据结构·c++·笔记·学习·算法
观测云5 小时前
使用外部事件检测接入 CDH 大数据管理平台告警
大数据·告警
@小张要努力5 小时前
基于STC89C52的8255并行口拓展实验
数据库·单片机·嵌入式硬件·学习·mongodb·51单片机·proteus
Faith_xzc6 小时前
存算分离是否真的有必要?从架构之争到 Doris 实战解析
大数据·数据库·数据仓库·架构·开源
挣扎与觉醒中的技术人6 小时前
【硬核实战】ETCD+AI智能调度深度整合!从架构设计到调优避坑,手把手教你打造高可用调度系统!
大数据·人工智能·etcd
程序员yt6 小时前
211 本硕研三,已拿 C++ 桌面应用研发 offer,计划转音视频或嵌入式如何规划学习路线?
c++·学习·音视频
qq_386322697 小时前
华为网路设备学习-16 虚拟路由器冗余协议(VRRP)
学习·华为·智能路由器
管理前沿7 小时前
如何避免Bug跟踪系统混乱
大数据·运维·人工智能
沧海一笑-dj7 小时前
【鸿蒙开发】Hi3861学习笔记- WIFI应用AP建立网络
笔记·学习·harmonyos