Flink Graph
早期,Batch和Stream的图结构和优化方法有很大的区别,所以批处理使用OptimizedPlan来做Batch相关的优化,使用StreamGraph表达流计算的逻辑,最终都转换为JobGraph,实现了流批的统一。
流计算应用的Graph转换
对于流计算应用来说,首先将DataStreamAPI的调用转换为Transformation,然后经过StreamGraph->JobGraph->ExecutionGraph3层转换(Flink内置的数据结构),最后经过Flink的调度执行,在Flink集群中启动计算任务,形成一个物理执行图,该图是物理执行的Task之间的拓扑关系,但是在Flink中没有对应的Graph数据结构,是运行时的概念。
小结:
Flink执行图分为四层:
StreamGraph -> JobGraph -> ExecutionGraph -> Physical Graph
其中Physical Graph在Flink中没有对应的Graph数据结构,是运行时的概念
批处理应用的Graph转换
对于批处理应用而言,首先将DataSet API的调用转换为OptimizedPlan,然后转换为JobGraph。批处理和流计算在JobGraph上完成了统一。
流图
使用DataStream API开发的应用程序,首先被转换为Transformation,然后被映射为StreamGraph,该图与具体的执行无关,核心是表达计算过程的逻辑。
StreamGraph核心对象
StreamGraph由StreamNode和StreamEdge构成。
StreamNode
StreamNode是StreamGraph中的节点,从Transformation转换而来,可以简单理解为一个

本文介绍了Flink中从DataStreamAPI到物理执行图的过程,包括StreamGraph、JobGraph、ExecutionGraph等关键概念及其转换流程,详细解释了算子链接、中间结果集等优化措施。
最低0.47元/天 解锁文章
71

被折叠的 条评论
为什么被折叠?



