今天才知道,我之所以漂泊就是在向你靠近
一、Flink内部graph转换图
DataStream API(特有的)
二、graph的简介
StreamGraph
1、根据用户代码生成最初的图
2、程序拓扑
3、Client端生成
JobGraph
1、优化streamgraph
2、将多个符合条件的node chain在一起
3、Client端生成
ExecutionGraph
1、jobManager根据JobGraph生成,并行化
物理执行图
实际执行图,不可见
StreamGraph对象会根据代码进行解析,将计算链条上的算子,根据其类型加到list中去。其中的类型父类为一下若干种:
三、graph之间的关系
可以看出streamGraph根据将streamGraph中加载的算子,按照先后顺序生成一个拓扑结构的计算流程图,然后将计算流程图
传送给JobManager,然后根据chain的方式,以及shuffle阶段和并行度 综合考虑将计算流程图,根据不同sharingGroup分成不同并行的job。
JobGraph
excutionGraph
根据JobGraph的分组(slotSharingGroup)以及并行度的关系,将实际的并行度的图进行展开,然后将展开的图,进行具体的job生成。不同的代码
分配到不同的机器上,指定taskslot进行计算。