Yarn 工作机制

- 客户端向 ResourceManager 申请运行程序
- ResourceManager 检查是否有运行权限,如果有就会返回 jobid 和程序提交的资源路径
- 客户端根据 ResourceManager 返回的信息,然后执行提交程序的资源到 /tmp/.../job_id目录下( 资源包括 jar 程序本身、job.split 逻辑切规划文件和 job.xml 配置文件)
- 客户端资源上传成功后,向 ResourceManager 请求执行程序
- ResourceManager 会将客户端请求转化为一个 Job 任务,并为该 Job 任务找到一个 NodeManger 启动容器(Container)用于运行 ApplicationMaster
- 启动中的 ApplicationMaster 向 ResourceManager 注册自己,启动成功后与 ResourceManager 保持心跳
- ApplicationManager 读取 tmp/..,/job_id/ 目录下 job.split 数据(申请资源的多少)并向 ResourceManager 申请与切片数量相应的容器(Container)
- ResourceManager 根据请求返回可用的 NodeManger 的容器(Container) 所在的位置
- 申请成功的容器(Container),由 ApplicationMaster 进行初始化。容器(Container)的启动信息初始化后,ApplicationManager 与对应的 NodeManager 通信,要求 NodeManager 启动容器
- ApplicationMaster 执行 NodeManger 上启动容器运行 MapTask 或 ReduceTask 任务
- 容器(Container)运行期间,ApplicationMaster 对 容器(Container)进行监控。容器(Container)通过 RPC 协议向对应的 ApplicationManager 汇报自己的进度和状态等信息
- MapTask 执行结束,ApplicationMaster 向 ResourceManager 汇报,回收资源
- ReduceTask 执行结束,ApplicationMaster 向 ResourceManager 汇报,回收资源
- 所有的任务结束后,ApplicationMaster 申请运用结束,注销自己,并允许属于它的容器(Container)被收回
posted @
2021-12-09 18:00
追こするれい的人
阅读(
46)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现