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

相关推荐
腾讯TNTWeb前端团队3 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰6 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪7 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy7 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom8 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom8 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom8 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom8 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom8 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试