Flink 作业生成①:生成 StreamGraph 一、作业生成及提交整体流程 上图为一个 Flink 作业的提交流程,主要可以分为以下几个步骤: Client 将作业 code 生成 StreamGraph(在 Batch 模式下,生成的是一个 OptimizedPlan,这里暂不展开):StreamGraph 描述了算子和算子之间逻辑上的拓扑关系 Client 将 StreamGraph 转换为 Job...
一、StreamGraph介绍 在一个Flink流式应用中每个DataStream API调用都会被转换为一个Transformation,等StreamExecutionEnvironment.execute()方法开始执行时,每个Transformation会映射为一个StreamGraph。StreamGraph用来表达计算过程的连接逻辑,与应用具体执行过程无关。下图为一个StreamGraph生成过程样例。从图中可知StreamGraph主...
StreamGraph 是客户端根据 Flink-API 生成的数据流图,是 Flink 任务执行流程拓扑图的封装。 当Flink应用业务逻辑算子编写完后会直接调用StreamExecutionEnvironment.execute()方法开始任务的生成、提 交及调度,第一阶段就是将Transformation转换为StreamGraph。那我们就顺着这个方法往下看。 StreamExecutionEnvironment 流的执...
StreamGraph是flink四层执行图中的第一层图,代码在org.apache.flink.streaming.api.graph包中,第一层graph主要做的事情是将所有的stransformation添加到DAG中,并设置并行度,设置slot槽位 具体涉及到的transformation大概有11个,继承图如下 首先我们来看一下如何获取StreamTransformation 代码语言:javascript 代码运行次数:...
flink源码解析-flink获取streamGraph流图 2. 获取StreamGraph 3. 获取StreamGraph生成器 4. 生成StreamGraph 5. transform 5.1. StreamSource 5.1.1. streamGraph添加source 5.2. ContinuousFileReader 5.2.1. streamGraph添加Operator 5.2.2. streamGraph添加Edge 5.3. StreamMap 5.3.1. streamGraph添加Operator 5.3....
在 Flink 中,StreamGraph 是一个核心概念,它描述了数据流如何从一个或多个 DataStream 生成新的 DataStream。本文将详细解释 StreamGraph 的生成过程,帮助读者更好地理解 Flink 的工作原理。 一、StreamGraph 简介 StreamGraph 是一个有向无环图(DAG),它表示了 Flink 流处理任务的计算图。图中的每个节点代表一个...
Flink StreamGraph 什么是StreamGraph StreamGraph表示流式处理拓扑的类,它包含构建执行任务图所需的所有信息。 说白了就是我们写的代码直接生成的图,表示程序的拓扑结构 StreamGraph类图,可以看到这个类里面包含了执行任务所需的所有信息,比如状态后端,JobType(流or批)、checkpoint配置等等,我们今天从宏观层面看,不深入...
本文将详细解析Flink中StreamGraph的生成过程,帮助读者深入理解Flink的工作原理。 一、StreamGraph简介 StreamGraph是Flink流处理作业的静态表示,它描述了作业的拓扑结构和转换关系。StreamGraph由一系列的Operator和它们之间的数据流(DataStream)构成。Operator是数据处理的基本单元,例如Map、Filter、Join等。数据流则连接了不...
Flink StreamGraph 的核心是 streamNodes 包含所以 算子生成的 StreamNode(也叫 Vertex), StreamNode 中包含连接算子的边(Edge),其他的虚拟节点 使用 virtualSelectNodes、virtualSideOutputNodes、virtualPartitionNodes 这三个map 标示上下游物理节点的连接信息 ...
traverseStreamGraphAndGenerateHashes 的作用就是根据节点在 StreamGraph 中的位置,生成对应的哈希值作为节点标识,Flink 默认使用 StreamGraphHasherV2 生成节点哈希。 // The hash function used to generate the hash final HashFunction hashFunction = Hashing.murmur3_128(0); final Map<Integer, byte[]> hash...