yarn运行机制原理

1.客户端将任务提交给resourceManager

2.resourceManager接受任务请求

3.resourceManager在nodeManager上寻找一个比较空闲的节点,

通知启动一个appMaster,将任务信息发送给appMaster

等待appMaster启动成功

如果启动失败,认为当前任务直接报错,告知任务无法执行

当对应节点启动成功后 报告给主节点(resourceManager)已经启动成功

4.appMaster启动后,开始和主节点保持着心跳机制,

appMaster获知任务的相关信息(jar包路径、主类、参数)

5.appMaster开始根据任务信息,计算共需要多少mapTask和多少个reduceTask

6.appMaster通过心跳包,将任务计算的结果资源需求发送给主节点,进行资源的申请

7.主节点根据接收到的资源申请的结果信息,进行资源的分配工作

如果资源非常宽裕,一次性将所需的所有资源一并全返回

如果资源比较紧张,最起码应该返回所有mapTask所需资源

8.appMaster通过心跳包,一直向主节点询问,是否已经准备好资源,

一旦准备好,将资源信息全部获取

9.appMaster根据获取的资源信息,通知各个nodeManager,启动相关的程序

(先启动mapTask),同时告知nodeManager任务信息(jar包 主类 参数信息)

10.每一个运行的container定时和appMaster汇总执行任务的进度

并且还基于nodeManager 和resourceManager的使用情况,报告资源使用的情况

如果初始化的时候 只是返回mapTask运行的资源,当mapTask执行完成后或者执行过程中 appMaster向resourceManagerTask询问reduceTask的资源是否已经准备好了 如果准备好就进行reduce任务

11.当整个mapTask和reduceTask都运行完成后,container通知appMaster已经执行完成后,报告给resourceManager已经完成任务

12.resourceManager收回所有分配的资源,然后通知appMaster可以执行自毁程序 释放内存

通俗理解:

主节点ResourceManager相当于一个老板  appMaster相当于一个经理  container相当于员工

首先客户把需求给老板 老板找一个经理分配任务

经理要不断与老板保持联系 ,从老板那里获得任务相关信息

经理计算需要用到的map和reduce资源 向老板要资源

老板将资源给到经理  经理开始通知nodeManager干活

container小弟要与经理不断保持联系汇报map任务和reduce任务的进展 和主节点、nodeManager 资源使用情况

当map、reduce任务都完成后  小弟给经理汇报 经理给老板汇报

然后老板收到消息 收回资源 释放内存

YARN是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。

ResourceManager负责所有资源的监控、分配和管理;

ApplicationMaster负责每一个具体应用程序的调度和协调;

NodeManager负责每一个节点的维护

三大组件介绍

ResourceManager

  1. ResourceManager负责整个集群的资源管理和分配,是一个全局的资源管理系统。
  2. NodeManager以心跳的方式向ResourceManager汇报资源使用情况(目前主要是CPU和内存的使用情况)。RM只接受NM的资源回报信息,对于具体的资源处理则交给NM自己处理。
  3. YARN Scheduler根据application的请求为其分配资源,不负责application job的监控、追踪、运行状态反馈、启动等工作。

NodeManager

  1. NodeManager是每个节点上的资源和任务管理器,它是管理这台机器的代理,负责该节点程序的运行,以及该节点资源的管理和监控。YARN集群每个节点都运行一个NodeManager。
  2. NodeManager定时向ResourceManager汇报本节点资源(CPU、内存)的使用情况和Container的运行状态。当ResourceManager宕机时NodeManager自动连接RM备用节点。
  3. NodeManager接收并处理来自ApplicationMaster的Container启动、停止等各种请求

ApplicationMaster

  1. 用户提交的每个应用程序均包含一个ApplicationMaster,它可以运行在ResourceManager以外的机器上。
  2. 负责与RM调度器协商以获取资源(用Container表示)。
  3. 将得到的任务进一步分配给内部的任务(资源的二次分配)。
  4. 与NM通信以启动/停止任务。
  5. 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
  6. 当前YARN自带了两个ApplicationMaster实现,一个是用于演示AM编写方法的实例程序DistributedShell,它可以申请一定数目的Container以并行运行一个Shell命令或者Shell脚本;另一个是运行MapReduce应用程序的AM—MRAppMaster。

注:RM只负责监控AM,并在AM运行失败时候启动它。RM不负责AM内部任务的容错,任务的容错由AM完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/422967.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鱼类检测-目标检测数据集(包括VOC格式、YOLO格式)

鱼类检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1B4o8IgOmAWeQJDWpJWxqXg?pwdjaco 提取码:jaco 数据集信息介绍: 共有 2848 张图像和一一对应的标注文件 标注文…

Fake Location模拟定位,刷跑 “运动世界校园”

前言:"科技改变生活,如果本文章对你有帮助,别忘记留下你的点赞,以下我对环境特变刁钻的运动世界校园为实例,也是成功安全正常上传数据,如果遇到问题,请留言评论区,所有链接我会放在文章头部…

二叉树进阶——二叉搜索树

关于二叉树的基本概念与内容作者在之前的数据结果初阶系列均有讲解,需要的小伙伴可以去作者的往期博客里查看。本篇内容算是对二叉树内容部分的收尾。 一、什么是二叉搜索树 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质…

How to implement custom environment in keras-rl / OpenAI GYM?

题意:如何在 Keras-RL / OpenAI GYM 中实现自定义环境? 问题背景: Im a complete newbie to Reinforcement Learning and have been searching for a framework/module to easily navigate this treacherous terrain. In my search Ive come…

axure判断

在auxre中我们也可以实现判断的功能,当目标等于什么内容时则执行下方的功能。 一、判断输入框中是否有值 画布添加一个输入框、一个文本标签删除其中内容,添加一个按钮,输入框命名为【文本显示】文本标签命名为【提示】 给按钮新增一个交互…

缓存预热/雪崩/穿透/击穿

1. 缓存预热 预先将MySQL中的数据同步至Redis的过程 2. 缓存雪崩 Redis主机出现故障,或有大量的key同时过期大面积失效导致Redis不可用 Redis中key设置为永不过期,或者过期时间错开Redis缓存集群实现高可用多缓存结合预防雪崩服务降级 3. 缓存穿透 …

消息队列面试

一、基础实战 (一)MQ的作用:异步、解耦、流量削峰填谷 (二)MQ应用场景 传统的金融项目一般使用IBMMQ(收费),比如某丰银行项目。ActiveMQ已经成为历史,因为现在很少使用…

Redis 篇-深入了解基于 Redis 实现消息队列(比较基于 List 实现消息队列、基于 PubSub 发布订阅模型之间的区别)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 消息队列的认识 2.0 基于 List 实现消息队列 2.1 基于 List 实现消息队列的优缺点 3.0 基于 PubSub 实现消息队列 3.1 基于 PubSub 的消息队列优缺点 4.0 基于 St…

Unity数据持久化 之 使用Excel.DLL读写Excel表格

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ 终于找到一个比较方便容易读表的方式了,以前用json读写excel转的cvs格式文件我怎么使用怎么别扭&#xf…

AlmaLinux 9 上配置静态 IP 地址

在 Rocky Linux 9 中,密钥文件的新默认存储位置在 /etc/NetworkManager/system-connections 中 cd /etc/NetworkManager/system-connections默认dhcp配置 ~ …

免费SSL证书正在逐渐被淘汰,证书部署自动化的发展趋势即将到来!

目录 背景解决方案。1.使用自签证书(浏览器报警、免费)2.更换支持自签自续的CA机构(免费)3.付费选择CA机构 免费SSL证书正在逐渐被淘汰,证书部署自动化的发展趋势即将到来免费的SSL证书有以下弊端1.有效期短&#xff1…

stm32驱动开发与linux驱动的区别

stm32,gpio设置原理 下图,定义了gpio E的基地址,只要将这个地址强制转换成gpiotypedf的类型,解析时,结构体地址就会自增。这样就可以对不同gpio组,就像定义。 全部gpio定义,强制为结构体类型…

Linux CentOS更换阿里云源解决Could not retrieve mirrorlist http://mirrorlist.centos.org

Linux CentOS7 更新yum 操作的时候出现这个问题: Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org 然后我执行 grep -nr "mirrorlist.centos.org" /etc/yum.repos.d/* 出现 这个问题时可以…

搭建 WordPress 及常见问题与解决办法

浪浪云活动链接 :https://langlangy.cn/?i8afa52 文章目录 环境准备安装 LAMP 堆栈 (Linux, Apache, MySQL, PHP)配置 MySQL 数据库 安装 WordPress配置 WordPress常见问题及解决办法数据库连接错误白屏问题插件或主题冲突内存限制错误 本文旨在介绍如何在服务器上…

爬虫使用代理IP后报错?解决方案在这里!

在数据抓取的过程中,使用代理IP是避免被封禁、提高抓取效率的重要手段。然而,有时候即使配置了代理IP,依然会遇到各种报错问题。本文将详细解析常见的报错类型,并提供解决方案,帮助你顺利进行数据抓取。 常见报错类型…

MySQL表的操作与数据类型

目录 前言 一、表的操作 1.创建一个表 2.查看表的结构 3.修改表 4.删除一个表 二、 MySQL的数据类型 0.数据类型一览: 1.整数类型 2.位类型 3.小数类型 4.字符类型 前言 在MySQL库的操作一文中介绍了有关MySQL库的操作,本节要讲解的是由库管理的结构——…

智能体 vs AI智能体:区别与联系,一文读懂!

​ 在AI技术蓬勃发展的今天,“智能体”(Agent)和”AI智能体”(AI Agent)两个概念经常被提及,二者在很多场合下会被混淆,但其实它们有着不同的定义和应用。我觉得很有必要小小科普下两者的定义与…

软件测试学习笔记丨Pytest的使用

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22158 1. 简介 pytest是一个成熟的全功能python测试框架测试用例的skip和xfail,自动失败重试等处理能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/ap…

HTML的块级元素与行内元素

在HTML中,元素可以分为两大类:块级元素(block-level elements)和行内元素(inline elements)。这两种类型的元素在网页布局和呈现中扮演着不同的角色。 块级元素(Block-level Elements&#xff…

CMU 10423 Generative AI:HW1(编程部分:在GPT-2模型中实现RoPE、GQA)

完整代码和PDF笔记:https://github.com/YM2025/CMU_10423_2024S 文章目录 1 概述Rotary Positional Embeddings (RoPE)Grouped Query Attention (GQA)实验任务 2 项目文件1. requirements.txt2. input.txt3. chargpt.py4. mingpt/a. model.pyb. trainer.pyc. utils.…