flink 任务提交流程

standalone模式

flink 任务提交流程App提交应用给Dispatcher,Dispatcher接受到这个任务后,
启动并提交应用JobManager,(一个job就会对应一个jobManager进行管理),
jobManager对当前的应用进行分析,解析成一个执行图,可以解析出当前的
job有多少个任务,就可以知道有多少个slot来运行,向resourceManager请求,
resouceManager启动对应的taskManager,taskManager将自己的slots向ResourceManger 
进行注册,ResouceManager向TaskManger发出提供slot指令,TaskManager向
JobManager提供slots,JobManager向TaskManager分发任务,TaskManager启动任务(这个阶段
会存在多个TaskManager数据的交互)

 

yarn模式

flink 任务提交流程

 

flinkClient 上传flink的jar包和配置到HDFS,将job提交到yarn的ResourceManger,
yarn resourceManager分配Container资源并通知对应的NodeManager上启动一个applicationMaster(每提交一个flink job 
就会启动一个applicationMaster),applicationMaster
会包含当前要启动的jobManager和flink自己内部要使用的resourceManager.
jobManager对当前的应用进行分析,解析成一个执行图,可以解析出当前的
jobManager向自己的flink resourceManager请求申请启动
taskManager,flink自己的resourceManager本身并没有资源,然后会向yarn resouceManager启动TaskManager,
yarn resourceManager根据提交的配置分配Container资源,由ApplicationMaster通知资源所在节点的对应的nodeManager启动taskManager,nodeManager加载Flink的Jar包和配置构建环境并启动然后启动相关的taskManager
taskManager将自己的slots向flink ResourceManger 
进行注册,flink  ResouceManager向TaskManger发出提供slot指令,TaskManager向
JobManager提供slots,JobManager向TaskManager分发任务,TaskManager启动任务(这个阶段
会存在多个TaskManager数据的交互)

 

 

 

 

上一篇:[官方Flink进阶笔记 ] 一、Runtime 核心机制剖析


下一篇:Apache Flink 进阶(四):Flink on Yarn / K8s 原理剖析及实践