Flink-----Yarn应用模式作业提交流程

Yarn应用模式作业提交流程

在Yarn当中又分为Session,PerJob,Application,建议和推荐使用独立集群的,其中就包含PerJob 和Application,但是1.17版本的Flink已将PerJob标记为过时,并且Application可以解决PerJob的一些痛点,减轻客户端的一些压力,所以需要重点了解Yarn应用模式的作业提交流程

在这里呢,我图里面把客户端给省略了,因为客户端在这里其实就相当于说什么也不干了,那我们第一步,当我们执行一个 run-application 这种提交方式之后,我们就直接提交向Yarn的ResourceManager发起请求了,之后呢会选择一个节点NodeManager启动一个容器,容器里面运行所谓的ApplicationMaster,这个其实就是咱们的JobManager,JobManager里面有三个核心组件,第一个组件是Dispatcher 分发器,对应会启动资源管理器,就是Flink内部的ResourceManager,再之后,分发器会去启动JobMaster,启动起来之后(注意跟前面Standalone模式下的的区别),最原始的逻辑流图(StreamGraph)是在这边JobMaster生成的,因为咱们应用模式会将客户端原先做的解析,生成图,转成作业图这些操作都省略了,现在交给JobManager里面的JobMaster来做,所以它会解析用户代码生成逻辑流图(StreamGraph)就是最原始的图,再之后会进一步进行算子链的优化生成作业图(JobGraph),再进一步会将作业图展开生成最核心的执行流图(ExecutionGraph),再之后就和Standalone一样了,它去请求它自己的大管家ResourceManager资源管理器,因为是Yarn模式,Flink自己并没有真正的拥有资源,我们依赖的是外部的Yarn这个平台来管理资源的,这个时候Flink内部的资源管理器就充当一个皮条客,中介,它只负责接收自己老大JobMaster请求然后它会向真正管资源的Yarn的ResourceManager要资源,这个时候Yarn会选择它的NodeManager启动容器,容器里面就运行咱们的TaskManager进程,TaskManager里面又会有一个一个根据咱们配置指定的Slot,同样它也有Actor通信系统,当TaskManager启动之后,它会主动向Flink的大管家(Flink自己的资源管家)ResourceManager 去注册Slot(把资源注册一下),并且表示自己启动成功,接下来大管家(Flink自己的资源管理器ResourceManager) 就会反过来说,现在JobMaster需要Slot, 去分配一下分一下工,你们谁谁谁分一下人手,接下来工作节点就老老实实的向JobMaster 去提供它的资源,JobMaster收到它们提供的Slot 后,就可以根据之前的执行流图将一些子任务分发出去,当然走的也是Actor网络通信,那么最终这些Task在TaskManager工作节点运行起来之后,咱们就说那个是执行的效果是物理流图,整体就是这样子,这个是简化之后的提交流程。

相关推荐
小宋102139 分钟前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
m0_6090004243 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
kejijianwen3 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
编程零零七3 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
(⊙o⊙)~哦5 小时前
JavaScript substring() 方法
前端
无心使然云中漫步5 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者5 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_6 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
Karoku0666 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen016 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器