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

相关推荐
QYR-分析14 小时前
蓝海赛道高速扩容!全球小型观察ROV市场格局、细分场景与发展趋势分析
大数据·运维·云计算
Elastic 中国社区官方博客14 小时前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索
hughnz15 小时前
石油工程的端到端数字化转型:演化还是革命
大数据·人工智能·科技
龙亘川15 小时前
旅游强国建设|一网统管智慧旅游服务模块,赋能节假日文旅数字化治理
大数据·数据库·人工智能·科技·智慧城市·旅游
Databend16 小时前
只看 PASS 会骗你,6 条 Agent Trace 里的 Coding Agent 评测真相
大数据·数据库·agent
数字新视界16 小时前
动环监控可视化技术在机房管理智能化中的实际应用剖析
大数据·人工智能·数据中心·微模块机房·模块化机房
朴实赋能16 小时前
AI拒答机制实战:心理咨询危机识别Agent三层防护、五级分层与六类智能体拆解
大数据·人工智能·多agent协同·心理咨询ai·心理危机识别·ai拒答机制·隐私匿名化
龙亘川17 小时前
智慧景区建设实践|文旅热度持续走高,景区如何把流量稳稳转化为口碑?
大数据·人工智能·科技·信息可视化·智慧城市
四方云18 小时前
低配4C4G服务器,10秒录音1秒转写!解决电销系统混合录音质检最大难题
大数据·人工智能·自动化·电销破局
paopao_djshddhdj18 小时前
钉钉企业支付详解:能力、场景与接入方式
大数据·钉钉