赞
踩
Flink在提交并执行任务时,首先会生成执行计划,依次生成StreamGraph、JobGraph、 ExecutionGraph、物理执行图。其中StreamGraph和JobGraph是在client端生成的,ExecutionGraph是在JobMaster中执行的,JobMaster根据 JobGraph 生成ExecutionGraph。方便调度和监控和跟踪各个 tasks 的状态。ExecutionGraph是JobGraph的并行化版本,是调度层最核心的数据结构,本文将详细介绍这些Graph的功能以及生成流程,方便大家对Flink内部执行流程有一个清晰的全局认识。
根据用户代码生成的最原始执行图,StreamGraph其实就是由用户代码中涉及到transformations转换来的,它包含两个重要元素,StreamNode和StreamEdge。StreamGraph的生成发生在用户调用了env.execute() 方法之后,而在这之前,用户编写的应用程序会转换成一个包含了Transformation的集合,SteamEdge用来表示transformation之间的连接关系,StreamNode用来表示具体的operator(算子),用来代表 operator 的类,并具有所有相关的属性,如并发度、入边和出边等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。