当前位置: 首页 > news >正文

YARN运行流程

YARN是Hadoop资源管理器,他是一个通用资源管理平台和调度平台,可为上层应用提供统一的资源管理和调度,MapReduce等运算程序则相当于运行于操作系统上的应用程序,YARN为这些程序提供运算所需的资源内存、cpu。

YARN并不清楚用户提交的程序的运行机制
YARN只提供运算资源的调度(用户程序向YARN申请资源,YARN就负责分配资源)
YARN中的主管角色叫ResourceManager
YARN具体提供运算资源的角色叫做NodeManager
YARN与运行的用户程序完全解耦,意味着YARN上可以运行各种类型的分布式运算程序,比如MapRuduce、storm、Spark、
Spark、storm等原生框架都可以整合在YARN上运行,只要他们各自的框架中符合YARN过程的资源请求机制即可
YARN主要包含三大模块 :ResourceMannger、NodeManager、ApplicationMaster
    ResourceMannager负责所有资源的监控,分配和管理是一个全局的资源管理系统
    NodeManager负责每一个节点的维护,以心跳的方式向ResourceManager汇报资源使用情况(目前主要是内存和cpu的使用情况)RM只接受NM的资源汇报信息,对于具体的资源处理则交给NM自己处理
    ApplicationMaster负责每一个具体应用程序的调度和协调,与NM通信以启动和停止任务,监控所有的任务运行状态,并在任务失败的时候为其重新去申请资源以重启任务。

YARN运行流程

1,Client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如 ApplicationMaster 程序、启动 ApplicationMaster 的命令、用户程序等。
2,ResourceManager启动一个Containe来运行ApplicationMaster
3,启动中的ApplicationMaster向ResourceManager祖册自己,启动成功后与RM保持心跳
4,ApplicationMaster 向 ResourceManager 发送请求,申请相应数目的 Container。
5,ResourceManager 返回 ApplicationMaster 的申请的 Containers 信息。申请成功的Container,由 ApplicationMaster 进行初始化。Container 的启动信息初始化后, AM与对应的 NodeManager 通信,要求 NM 启动 Container。 AM 与 NM 保持心跳,从而对 NM上运行的任务进行监控和管理。
6,Container 运行期间, ApplicationMaster 对 Container 进行监控。 Container 通过 RPC协议向对应的 AM 汇报自己的进度和状态等信息
7,Client 直接与 AM 通信获取应用的状态、进度更新等信息。
8,应用运行结束后, ApplicationMaster 向 ResourceManager 注销自己,并允许属于它的Container 被收回。
 

http://www.lryc.cn/news/33706.html

相关文章:

  • java八股系列——SpringMVC从接受请求到完成响应的过程
  • Elasticsearch索引全生命周期
  • 汇编指令学习(LOOP)
  • Linux 配置本地yum源
  • 【PyTorch】教程:torch.nn.LeakyReLU
  • 【刷题】-- 基础 -- 二分查找
  • Spark MLlib 特征工程
  • CentOS7 完全卸载 php
  • 关于OCS认证里必须知晓的内容
  • 创业做电商难不难?新人做电商怎么才能挣钱?
  • 【项目设计】高并发内存池(七)[性能测试和提升]
  • PHP:Laravel cast array json数据存数据库时unicode 编码问题和update更新不触发数据转换
  • 自动化测试总结--断言
  • 传输线的物理基础(三):传输线的瞬时阻抗
  • 第六章:多线程
  • 铁路与公路
  • GitHub Copilot 全新升级,工作效率提升 55%
  • 【IoT】《天道》中音响案例的SWOT分析
  • 如何实现接口幂等性
  • 相恨见晚的office办公神器(不坑盒子/打工人Excel插件2023年最新版)
  • matlab基础到实战(1)
  • 谷歌发布编写分布式应用的框架Service Weaver
  • 详解FPGA:人工智能时代的驱动引擎观后感
  • Rest/Restful接口
  • 【vue init】三.项目引入axios、申明全局变量、设置跨域
  • 搭建nextcloud私有云盘
  • 05 | 如何安全、快速地接入OAuth 2.0?
  • nest.js学习笔记(一)
  • win下载配置CIC Flowmeter环境并提取流量特征
  • 【LeetCode刷题-Java/Python】二分查找