FlinkClient的主要功能
ApplicationCode 运行:
- ExecutionEnvironment:执行环境
- checkPoint的配置
- 存储Transformation相关信息
- PackageProgram
- 构建classPath以及ClassLoader(UserClassLoader)
- PipelineEXecution 运行applicationCode
- 构建JobGraph
任务管理
- Submit job
- Cancel Job
- Trigger SavePoint
- jobStatus Track
集群管理
- 创建集群
- 停止集群
FlinkClient的主要组件
- 执行环境ContextEnvironment
- StreamExecutionEnvironment
- ExecutionEnvironment
- PipelineExecutor pipeline执行器,构建出一个JobGraph对象
- LocalExecutor-MiniCluster 对应idea执行器
- AbstractJobClusterExecutor 对应perjob任务执行
- YarnJobClusterExecutor 目前就yarn实现了Perjob任务运行
- AbstractSessionCLusterExecutor
- RemoteExecutor standLone执行
- KubermetesSessionClusterExecutor
- YarnSessionCLusterExecutor yarn执行
- CLusterDescriptor 与具体资源管理器相连,创建对应集群(如果申请的是native资源,就需要和对应的资源管理器相连申请资源)
- StandloneClusterDescriptor
- YarnClusterDescriptor
- KubernetesClusterDescriptor
Session集群创建流程
ApplicationCode的运行过程
Flink作业提交流程
新老版本per-job提交写法区别
- 老版本(<=1.10) flink run -m yarn-cluster -c x xx.jar
- 新版本(>=1.11) flink run -t yarn-per-job -c xxx.jar
PerJob提交流程
JobManager在Perjob模式下的进程名称——-YarnJobClusterEntrypoint
TaskManager进程名称—-TaskExecutorRunner