1. Flink简述

Flink与Spark Streaming对比

数据模型和处理模型

​ Spark 的数据模型是 RDD,很多时候 RDD 可以实现为分布式共享内存或者完全虚拟化(即有的中间结果 RDD 当下游处理完全在本地时可以直接优化省略掉)。这样可以省掉很多不必要的 I/O。

​ Spark用 RDD上的变换(算子)来描述数据处理。每个算子生成一个新的 RDD。所有的算子组成一个DAG, Spark 比较简单地把边分为宽依赖和窄依赖,上下游数据不需要 shuffle 的即为窄依赖,可以把上下游的算子放在一个 stage 里在本地连续处理,这时上游的结果 RDD 可以省略。

​ Flink 的基本数据模型是数据流,即 Event 序列。流可以是无边界的的无限流,即一般意义上的流处理。也可以是有边界的有限流,这样就是批处理。

​ Flink 用数据流上的变换(算子)来描述数据处理。每个算子生成一个新的数据流。在算子、DAG 和上下游链接这些方面,和 Spark 大致等价。Flink 的节点 (vertex)大致相当于 Spark 的阶段(stage)。

​ 在 DAG 的执行上,Spark 和 Flink 有一个显著的区别。在 Flink 的流执行模式中,一个事件在一个节点处理完后的输出就可以发到下一个节点立即处理。这样的执行引擎不会引入额外的延迟。与之对应的,所有的节点是需要同时运行的。而 Spark 的 micro batch 和一般的 batch 执行一样,处理完上游的 stage 得到输出后才开始下游的 stage。

​ 最开始的 Spark Streaming 对流计算想得过于简单,对复杂一点的计算用起来会有不少问题。从 Spark 2.0 开始引入的 Structured Streaming 重新整理了流计算的语义,支持按事件时间处理和端到端的一致性。

​ 在Flink的流执行模式中,为了提高效率也可以把多个事件放在一起传输或者计算。但这完全是执行时的优化,可以在每个算子独立决定,也不用像 RDD 等批处理模型中一样和数据集边界绑定,可以做更加灵活的优化同时可以兼顾低延迟需求。

​ Flink 使用异步的 checkpoint 机制来达到任务状态的可恢复性,以保证处理的一致性,所以在处理的主流程上可以做到数据源和输出之间数据完全不用落盘,达到更高的性能和更低的延迟。(Spark 是通过 RDD 血缘)

状态处理

(待写)

参考: https://developer.aliyun.com/article/700509?spm=a2c6h.14164896.0.0.49c5182dlu7mrz

相关推荐
新缸中之脑4 分钟前
Meta新模型Muse Spark上手体验
大数据·分布式·spark
JZC_xiaozhong6 分钟前
2026年制造企业数据治理:破解多系统数据孤岛,实现“一数一源”
大数据·数据分析·制造·数据一致性·主数据管理·数据孤岛解决方案·数据集成与应用集成
咕噜签名-铁蛋16 分钟前
大模型Token Plan详解:选型、优化与成本控制全攻略
大数据·运维·人工智能
互联网科技看点24 分钟前
诸葛智能入选IDC最新报告:以营销智能体驱动金融增长
大数据·人工智能·金融
tian_jiangnan26 分钟前
flink mysql集群增删改查
大数据·mysql·flink
xcbrand27 分钟前
工业制造品牌全案公司找哪家
大数据·人工智能·python·制造
Guheyunyi30 分钟前
无人机巡检系统,高效精准守护全场景安全
大数据·人工智能·科技·安全·架构·无人机
蓝耘智算35 分钟前
Token经济学:读懂AI时代的“新石油”
大数据·人工智能·ai·token·蓝耘
上海达策TECHSONIC1 小时前
汽车零配件 SAP 转型数字化标杆 上海达策实施 SAP Business One 赋能汽车底盘转向领域
大数据·运维·人工智能·汽车·运维开发·制造
Thomas21431 小时前
pyspark 新接口 DataSource V2 写法 写入paimon为例
大数据·分布式·spark