本文从源码出发,详细分析了StreamGraph的生成以及算子的底层逻辑,包括Transformation和Operator的封装,StreamGraph节点和边生成等。
原创
2023-02-01 18:42:54
272阅读
FlinkStreamGraph的核心是streamNodes包含所以算子生成的StreamNode(也叫Vertex),StreamNode中包含连接算子的边(Edge),其他的虚拟节点使用virtualSelectNodes、virtualSideOutputNodes、virtualPartitionNodes这三个map标示上下游物理节点的连接信息sources、sinks的set标示流的
原创
2021-02-07 14:53:43
353阅读
继上文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。
继上文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。
继上文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。
继上文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。
转载
2019-03-12 08:49:51
617阅读
flink的变量名、方法名之类的命名是真的好啊Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序 的拓扑结构。JobGraph:StreamGraph 经过优化后生成了 JobGraph,提交给
最近一直在看StreamGraph生成的源码,刚好有点思路,准备动手了发现,如果不说下Transformation后面的StreamGraph会差比较多意思,所以先做点铺垫。##TransformationTransformation类是Flink转换算子的基类,实现类有下面这些AbstractMultipleInputTransformationCoFeedbackTransformationF
原创
2021-02-07 14:59:27
568阅读
link的Task任务调度执行1Graph的概念Flink 中的执行图可以分成四层:StreamGraph ->JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。JobGraph:StreamGraph经过优化后生成了 JobGraph,提交给 J
原创
2021-03-14 10:04:01
3190阅读
1评论
好了,本次的 StreamGraph 的 debug 就到这了。
阅读这部分的代码,给我感触最深的就是,要关注主要矛盾,忽略次要分支,才能把脉络梳理清楚,否则就会深陷泥潭,不仅自己没有成就感,而且还耽误了时间
原创
2021-09-01 13:49:59
112阅读
报错信息如下:Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot generate StreamGraph. at org.apache.flink.table.executor.StreamExecutor.createPipeline(StreamExecutor.java:51) at org.apache.flink.tabl
原创
2022-01-07 16:54:52
442阅读
新的一年又来了,不知道大家有没有立几个每年都完不成的 FLAG ?反正我立了,我今年给自己立的 FLAG 是大致阅读大数据几个框架的源码。为什么要“大致”阅读,因为这些牛逼的框架都是层层封装,搞懂核心原理已经是很不易,更别谈熟读源码了
原创
2021-09-01 13:50:33
346阅读
报错信息如下:Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot generate StreamGraph. at org.apache.flink.table.executor.StreamExecutor.createPipeline(StreamExecutor.java:51) at org.apache.flink.tabl
原创
2021-06-21 15:52:46
4055阅读
一、task任务调度流程图 二、Graph图的概念 flink执行图的四层概念:streamGraph>JobGraph>ExecutionGraph>物理执行图; streamGraph,根据api编写的代码生成的图,展示程序的拓扑结构 jobGraph,streamGraph优化后生成的JobG ...
转载
2021-07-23 22:35:00
267阅读
2评论
flink:JobGraph生成过程分析
1、JobGraph是由StreamGraph转换而来,当client将StreamGraph提交后,job启动前会先完成转换,统一的转换入口如下:2、StreamingJobGraphGenerator类StreamingJobGraphGenerator的职责就是将StreamGraph转换成JobGraph
目录Flink流图基本概念StreamGraph源码StreamGraph的核心对象StreamNodeStreamEdgeStreamNode和StreamEdge之间的关系上传jar包生成StreamGraph生成StreamNode生成Edge核心方法参考Flink流图基本概念这里简单介绍一下Flink流图的一些基本概念和过程。根据不同图的生成顺序,主要是分为4层:StreamGraph--
StreamGraph 构建和提交源码解析StreamGraph:根据用户通过 Stream API 编写的代码生成的最初的图。Flink 把每一个算子 transform 成一个对流的转换(比如 SingleOutputStreamOperator, 它就是一个 DataStream 的子类),并且 注册到执行环境中,用于生成 StreamGraph 它包含的主要抽象概念有 1、StreamNo
flink:StreamGraph生成过程分析
1、StreamGraph本质本质就是按照用程序代码的执行顺序构建出来的用于向执行环境传输的流式图,并且可以支持可视化展示给用户的一种数据结构。2、StreamGraph、StreamNode和StreamEdge的数据结构StreamGraph构建DAG流图时,其核心是要维护好节点及节点之间的关系即可,关
《Flink执行计划第一层——StreamTransformation》 构造了列表+链表的结构;《Flink执行计划第二层——StreamGraph》 转化第一层为图结构;接下来,就该转化 StreamGraph 为 JobGraph 了。StreamGraph 继承了抽象类 StreamingPlan 并实现了 getJobGraph 方法:/**
* Gets the assembled
Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。 DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph)。流图(StreamGraph)是表示流处理程序拓扑的数据结构,它封装了生
概述Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:即根据用户编写的Stream API而生成的最初的作业拓扑图,表示程序的拓扑结构。JobGraph:StreamGraph会经过作业链优化生成JobGraph,提交给 JobManager 的数据结构。主要的优化为,
一、StreamGraph介绍在一个Flink流式应用中每个DataStream API调用都会被转换为一个Transformation,等StreamExecutionEnvironment.execute()方法开始执行时,每个Transformation会映射为一个StreamGraph。StreamGraph用来表达计算过程的连接逻辑,与应用具体执行过程无关。下图为一个StreamGrap
文章目录一、执行图二、图演变过程1、StreamGraph2、JobGraph3、ExecutionGraph4、物理执行图 一、执行图Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑