Flink作业提交流程
概述
1.在Flink Client中,通过反射启动jar中的main函数,生成FlinkStreamGraph和JobGraph,将JobGraph提交给Flink集群
2.Flink集群收到JobGraph(JobManager收到)后,将JobGraph翻译成ExecutionGraph,然后开始调度,启动成功之后开始消费数据。
pipelineExecutor有多种实现,
session模式下:AbstractSessionClusterExecutor
per-job模式下:AbstractJobClusterExecutor
IDE调试:LocalExecutor
Session模式:
作业提交通过yarn-seesion.sh脚本,在启动脚本的时候检查是否已经存在好的Flink-Session模式的集群,然后在PipelineExecutor中,通过Dispatcher提供的restful接口提交Flink JobGraph
Dispatcher为每一个作业提供一个JobManager,进入到作业执行阶段
Per-Job模式 一个作业一个集群,作业之间相互隔离
在pipelineExecutor 执行作业提交的时候,可以创建集群并将以及所需要的文件一起提交给yarn集群,在yarn集群容器中启动flink master(Job Manager)进程,进行初始化后,从文件系统获取JobGraph,交给Dispatcher,之后和session流程相同