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

相关推荐
Nueuis1 小时前
微信小程序前端面经
前端·微信小程序·小程序
小鱼小鱼.oO2 小时前
阿里云服务器安装nginx并配置前端资源路径(前后端部署到一台服务器并成功访问)
服务器·nginx·阿里云
_r0bin_3 小时前
前端面试准备-7
开发语言·前端·javascript·fetch·跨域·class
IT瘾君3 小时前
JavaWeb:前端工程化-Vue
前端·javascript·vue.js
potender3 小时前
前端框架Vue
前端·vue.js·前端框架
站在风口的猪11084 小时前
《前端面试题:CSS预处理器(Sass、Less等)》
前端·css·html·less·css3·sass·html5
程序员的世界你不懂4 小时前
(9)-Fiddler抓包-Fiddler如何设置捕获Https会话
前端·https·fiddler
MoFe14 小时前
【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
java·前端·.netcore
去旅行、在路上5 小时前
chrome使用手机调试触屏web
前端·chrome
啵啵学习5 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式