简介
Flink在提交并执行任务时,首先会生成执行计划,依次生成StreamGraph、JobGraph、 ExecutionGraph、物理执行图。其中StreamGraph和JobGraph是在client端生成的,ExecutionGraph是在JobMaster中执行的,JobMaster根据 JobGraph 生成ExecutionGraph。方便调度和监控和跟踪各个 tasks 的状态。ExecutionGraph是JobGraph的并行化版本,是调度层最核心的数据结构,本文将详细介绍这些Graph的功能以及生成流程,方便大家对Flink内部执行流程有一个清晰的全局认识。
StreamGraph、JobGraph、ExecutionGraph的功能
1.StreamGraph
根据用户代码生成的最原始执行图,StreamGraph其实就是由用户代码中涉及到transformations转换来的,它包含两个重要元素,StreamNode和StreamEdge。StreamGraph的生成发生在用户调用了env.execute() 方法之后,而在这之前,用户编写的应用程序会转换成一个包含了Transformation的集合,SteamEdge用来表示transfor
本文详细介绍了Flink任务执行时StreamGraph、JobGraph、ExecutionGraph的生成过程及其功能。StreamGraph由用户代码转换而来,JobGraph在StreamGraph基础上优化,设置Task链关系,ExecutionGraph加入并行度概念,成为可调度结构。文章还涵盖了JobGraph到ExecutionGraph的转换,作业执行状态以及Task生命周期的关键点。
订阅专栏 解锁全文
1184

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



