大数据学习(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更偏向间断性数据流处理。

相关推荐
字节跳动数据平台5 小时前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术7 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
大大大大晴天8 小时前
Flink生产问题排障-HBase NotServingRegionException
flink·hbase
武子康8 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康1 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天1 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
肌肉娃子4 天前
20260227.spark.Spark 性能刺客:千万别在 for 循环里写 withColumn
spark
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet