flink-1.12.2源码
设置时区:stenv.getConfig().setLocalTimeZone(ZoneId.of(“GMT+07:00”));
Jobmanger 里面的三大组件
dispatch、resourcemanger(flink里面的,不是yarn的),Jobmaster
- dispatch
- resourcemanger(flink里面的,不是yarn的)
- Jobmaster
resourcemanger(flink里面的,不是yarn的)内部的slotmanger向yarn的resourcemanger申请资源
flink run -t yarn-per-job -c …xxxx.jar
入口类
CliFrontend
1、参数解析
2、 封装CommandLine:三个(Genric、YarnSession、),依次添加
3、配置的封装
4、 生成StreamGraph
5、Executor:生成JobGraph
6、集群描述器:上传jar包、配置、封装提交给yarn命令
7、yarnclient提交应用给YarnResourceMnager
YarnJobClusterEntryPoint:AM执行的入口类
1.Dispatcher的创建和启动
2.ResourceManger的创建、启动:里面有一个slotManger(真正管理资源,向yarn申请资源)
3.DisPatcher启动JobMaster(里面有一个slotpool,真正发送请求的)
4.slotpool向soltmanger申请资源,slotmanger向yarn申请资源(启动新节点)
YarnTaskExecutorRunner:Yarn模式下的TaskManger的入口类
1、启动 TaskExcutor
2、向ResourceManger注册slot
3、ResourceManger分配slot
4、TaskExecutor接收到分配的指令、提供offset给JobMaster(slotpool)
5、JobMaster提交任务给TaskExecutor去执行