YARN介绍

1 概念

YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、
NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager 负责所有资
源 的 监 控 、 分配 和 管 理; ApplicationMaster 负 责 每 一 个 具体 应 用 程序 的 调 度 和 协调 ; NodeManager 负责每一个节点的维护。对于所有的 applications,RM 拥有绝对的控制权和对资 源的分配权。而每个 AM 则会和 RM 协商资源,同时和 NodeManager 通信来执行和监控 task。 几个模块之间的关系如图所示

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

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

YARN 运行流程

1. client 向 RM 提交应用程序,其中包括启动该应用的 ApplicationMaster 的必须信息,例如
ApplicationMaster 程序、启动 ApplicationMaster 的命令、用户程序等。
2. ResourceManager 启动一个 container 用于运行 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.hqwc.cn/news/433561.html

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

相关文章

LVS 概念介绍

1、集群简介 集群概述 集群称呼来自于英文单词 cluster,表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,协同起来向用户提供系统资源,系统服务。通过网络连接组合成一个计算机组,来共同完一个任务。 …

Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )

目录 事务事务概念什么是事务事务四个特性(ACID) 搭建事务操作环境Spring 事务管理介绍注解声明式事务管理声明式事务管理参数配置XML 声明式事务管理事务操作(完全注解声明式事务管理)感谢阅读 开篇: 欢迎再次来到 Spring 5 学习…

记一个信息泄露到RCE

打点 开局一个登录框 信息收集 发现了一处接口泄露了部分信息 不过只有支付宝密钥的信息无法扩大危害,此时尝试寻找了一下其他同类型系统同样的接口,查看一下是否泄露的信息相同 因为如果相同就说明是静态的,没有价值横向收集 此时访问其他…

关于我写过那些MySQL专栏

写在文章开头 这是截至今日写过的文章汇总,对于关注笔者公众号有一段时间的读者都知道,笔者会每周对自己写过的文章整理至相关专栏,以便读者可以按需进行检索阅读。 你好,我叫sharkchili,目前还是在一线奋斗的Java开…

无需手动部署3分钟自动化搞定幻兽帕鲁游戏联机服务器搭建与好友一起玩

生存类游戏《幻兽帕鲁》异常火爆,大量玩家遭遇了卡顿、闪退、延迟高的糟糕体验,其实我们玩家也可以选择《幻兽帕鲁》的专用服务器模式,自行搭建服务器和好友畅玩,无需手动部署,3分钟自动化搞定游戏联机服务器搭建。 1…

代码随想录算法训练营第32天(贪心算法02● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

贪心算法 part02 122.买卖股票的最佳时机II解题思路 55. 跳跃游戏解题思路 45.跳跃游戏II (来不及了 明天刷解题思路 122.买卖股票的最佳时机II 动态规划章节会重点讲买卖股票问题 本题解法很巧妙,大家可以看题思考一下,在看题解。 题目链接&…

Cybellum—信息安全测试工具

产品概述 由于软件和数据在汽车上的使用越来越多,汽车越来越“智能化”,汽车行业面临着重大的信息安全挑战。2021年8月,ISO/SAE 21434正式发布,标准中对汽车的信息安全提出了规范化的要求,汽车信息安全不容忽视。 Cyb…

HTML 曲线图表特效

下面是代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>基于 ApexCharts 的 HTML5 曲线图表DEMO演示</title><style> body {background: #000524; }#wrapper {padding-top: 20px;background: #000524;b…

Huggingface上传自己的模型

5.8更新几个比较坑的点 首先如果你的模型太大&#xff08;>5GB&#xff09;&#xff0c;那么需要使用下面的命令声明一下&#xff0c;否则无法push $ huggingface-cli lfs-enable-largefiles ./path/to/your/repo假如使用VScode提交&#xff0c;那么需要注意&#xff0c;在…

博弈论(牛客练习赛)

思路&#xff1a;我们考虑小念赢 1、如果n>1并且p0&#xff0c;小念可以连续取两次&#xff0c;相当于小念有挂&#xff0c;可以从必败态转为必胜态&#xff0c;必赢。 2、如果n>1并且m>n-1&#xff0c;小念第一次取n-1个&#xff0c;小念必赢。 代码&#xff1a; …

OJ_叠框问题

问题描述 c语言实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> using namespace std;int main() {int n; //存放外框尺寸int a,b; //存放两个字符char matrix[100][100] { 0 };//全部初始化为休止符/0while (scanf("%d %c %c&…

Hive实战 —— 电商数据分析(全流程详解 真实数据)

目录 前言需求概述数据清洗数据分析一、前期准备二、项目1. 数据准备和了解2.确定数据粒度和有效列3.HDFS创建用于上传数据的目录4.建库数仓分层 5.建表5.1近源层建表5.2. 明细层建表为什么要构建时间维度表&#xff1f;如何构建时间维度表&#xff1f; 5.3 轻聚层建表6. 指标数…