standalone模式
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模式
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数据的交互)