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工作节点运行起来之后,咱们就说那个是执行的效果是物理流图,整体就是这样子,这个是简化之后的提交流程。

相关推荐
夜焱辰3 小时前
浏览器端 Agent 的文件版本管理:不用 Git,基于 OPFS + SQLite 自己造了一个
前端·人工智能
梦想的颜色3 小时前
TypeScript 完全指南(下):从类型体操到生产级配置
前端·javascript·typescript
Hi~晴天大圣5 小时前
npm使用介绍
前端·npm·node.js
888CC++5 小时前
如何在 C 语言中进行程序调试?
前端·javascript·算法
暴躁小师兄数据学院6 小时前
【AI大数据工程师特训笔记】第16讲:大数据环境安装
大数据·hadoop·笔记·flink·spark·database
喵个咪6 小时前
基于 Taro 的 Headless CMS 多端前端架构:技术解析与二次开发导引
前端·react.js·taro
狂炫冰美式6 小时前
你还在古法PPT吗,试试HTML呢?免费编辑导出工具给 xdm 放这了
前端·后端·github
万少7 小时前
未来组织的分水岭不是员工数量,而是人才密度
前端·后端·面试
任磊abc7 小时前
nextjs16配置eslint+prettier
前端·eslint·nextjs·prettier
x***r1517 小时前
Another-Redis-Desktop-Manager.1.3.7安装步骤详解(附Redis可视化连接与Key管理教程)
前端·bootstrap·html