flink on yarn工作提交流程
示意图
流程如下:
- Client向Dispatch而发起请求,Dispatch而向yarn提交job
- Yarn的NN创建一个container,启动Application Master(AM)
- ApplicationMaster在本地启动一个Resource Manager和Job Manager
- Job manager根据StreamGraph生成的ExecutionGraphy以及物理执行计划向Flink Resource Manager申请slot
- 如果没有足够的slot,那么Flink Resources Manager向Yarn Resource Manager申请Container
- 创建Container之后,Container向Flink Resource Manager和JobManager注册
- 注册之后Flink Resource manager分配slot,JobManager分配Task
几点分工注意:
- 集群资源掌控在yarn的老大NN中,但是flink的client不直接和yarn的NN打交道,而是通过Application Master(AM)中的Resources Manager获取资源
- AM中的Resource Manager(RM)负责向yarn申请资源(Container),分配slot
- Job Manager向RM申请资源