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

相关推荐
闹小艾2 小时前
舞蹈教培机构小程序零基础制作开发全流程教程
大数据·小程序
阿乔外贸日记2 小时前
2026尼日利亚五项清关政策更新,拉高能源装备进口综合成本
大数据·人工智能·搜索引擎·智能手机·云计算·能源
暴躁小师兄数据学院3 小时前
【AI大数据工程师特训笔记】第12讲:表分区与索引
大数据·笔记·sql·postgresql
侃谈科技圈3 小时前
破除数据中台落地困境:2026数据治理平台差异化能力与选型决策指南
大数据·人工智能
Elastic 中国社区官方博客4 小时前
Elasticsearch DiskBBQ:使用原生 SIMD Blocks 实现快 40% 的向量评分计算
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·diskbbq
暴躁小师兄数据学院4 小时前
【AI大数据工程师特训笔记】第16讲:大数据环境安装
大数据·hadoop·笔记·flink·spark·database
豆豆5 小时前
垂直行业门户网站搭建解决方案与落地实操指南
大数据·cms·pageadmin·自定义模型·垂直门户·行业建站·站群建设
Elastic 中国社区官方博客5 小时前
Kibana:使用 AI Chat 及 MCP 轻松创建 AI 原生仪表板
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·信息可视化
Thomas_YXQ5 小时前
Unity无GC读取图片与网格完整方案
大数据·人工智能·unity·微信·产品运营
阿里云大数据AI技术6 小时前
Skill即服务:用Agent安全玩转云上Flink
人工智能·flink