Apache Flink 的 ExecutionGraph(执行图) 是 Flink 作业调度和执行的核心数据结构。它是 Flink 作业生命周期中从逻辑视图向物理执行视图转换的关键一步。 简单来说,ExecutionGraph 是 JobGraph 的并行化版本。它包含了所有并行执行的任务实例(Subtasks)以及它们之间的数据传输通道。 以下是关于 Flink ExecutionGraph 的详细解析: --- 1. Flink 的图转换流程(上下文) 为了理解 ExecutionGraph,首先需要知道它在 Flink 图转换流程中的位置。Flink 作业提交后,会经历以下四个阶段的图转换: 1. StreamGraph (流图): 根据用户代码(API 调用)生成的最初始的拓扑图。节点是 Operator(算子)。 2. JobGraph (作业图): (在 Client 端或 JobManager 端生成) 对 StreamGraph 进行优化,将多个符合条件的 Operator 融合(Chain)成一个 Operator Chain。这是提交给 JobManager...