Hadoop YARN

news2024/10/5 7:02:09

Hadoop YARN

  • YARN的组成
    • YARN3大件的作用
  • MR提交计算程序的过程
    • Scheduler
    • 调度策略
      • FIFO Scheduler(先进先出调度)
      • Capacity Scheduler(容量调度)
      • Fair Scheduler(公平调度)

请添加图片描述

Hadoop YARN是一个是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处

我们如何理解通用资源管理系统和调度平台?

资源管理系统:集群的硬件资源,和程序运行相关

调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)

通用:虽然yarn是在Hadoop中但是理论上它可以支持各种计算程序

YARN的组成

YARN3大件:

(ResourceManager NodeManager )集群物理层面

ApplicationMaster(App Mst)app层面

Client (客户端)

Container容器(资源的抽象)

YARN3大件的作用

ResourceManager(RM)

YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。

NodeManager(NM)

YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源

ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM,在程序启动时负责程序内部各阶段的资源申请,并且监督程序阶段的执行情况

MR提交计算程序的过程

1、用户通过客户端向YARN中ResourceManager提交应用程序

2、ResourceManager为该应用程序分配第一个Container(容器),并与对应的NodeManager通信,要求 它在这个Container中启动这个应用程序的ApplicationMaster

3、ApplicationMaster启动成功之后,首先向ResourceManager注册并保持通信,这样用户可以直接通过 ResourceManage查看应用程序的运行状态

4、AM为本次程序内部的各个Task任务向RM申请资源,并监控它的运行状态;

5、ApplicationMaster 申请到资源后,便与对应的 NodeManager 通信,要求它启动任务

6、NodeManager 为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务

7、各个任务通过某个 RPC 协议向 ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随 时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过 RPC 向 ApplicationMaster 查询应用程序的当前运行状态。

8、应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己

Scheduler

在YARN中Scheduler输入核心组件之一,属于YARN中调度器

调度策略

FIFO Scheduler(先进先出调度器)、Capacity Scheduler(容量调度器)、Fair Scheduler(公平调度器)在 Apache版本YARN默认使用Capacity Scheduler
三个调度方式示意图如下:
请添加图片描述

FIFO Scheduler(先进先出调度)

先提交的应用先运行,这个很容易理解,就是先到先得

优势:配置简单,无需配置易于执行

缺点:没有优先级高优先级的作业需要等待

Capacity Scheduler(容量调度)

为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略

优点:

层次化队列设计

1、层次化的管理,可以更容易、更合理分配和限制资源的使用。

容量保证

2、每个队列上都可以设置一个资源的占比,保证每个队列都不会占用整个集群的资源

安全

3、每个队列有严格的访问控制。用户只能向自己的队列里面提交任务,而且不能修改或者访问其他队列的任务

弹性分配

4、空闲的资源可以被分配给任何队列

Fair Scheduler(公平调度)

公平调度可以在多个队列间工作,允许资源共享和抢占,也就是说当你的资源没有完全使用的时候,别人可以使用你没有使用的资源,如果两个任务来自一个用户并且另一个用户也有作业任务时,这个两个任务只能共享本用户的资源

优点:1、保证最小配额:可以设置队列最小资源,允许将保证的最小份额分配给队列,保证用户可以启动任务。当队列不能 满足最小资源时,可以从其它队列抢占。当队列资源使用不完时,可以给其它队列使用。这对于确保某些用户、组或 生产应用始终获得足够的资源。

2、 允许资源共享:即当一个应用运行时,如果其它队列没有任务执行,则可以使用其它队列,当其它队列有应用需要资源 时再将占用的队列释放出来。所有的应用都从资源队列中分配资源。

3、默认不限制每个队列和用户可以同时运行应用的数量。可以配置来限制队列和用户并行执行的应用数量。限制并行 执行应用数量不会导致任务提交失败,超出的应用会在队列中等待

4、分层队列:队列可以按层次结构排列以划分资源,并可以配置权重以按特定比例共享集群。

5、基于用户或组的队列映射:可以根据提交任务的用户名或组来分配队列。如果任务指定了一个队列,则在该队列中 提交任务。

资源抢占:根据应用的配置,抢占和分配资源可以是友好的或是强制的。(默认不启用资源抢占)

愿君前程似锦,未来可期去💯,感谢您的阅读,如果对您有用希望您留下宝贵的点赞和收藏
本文章为本人学习笔记,学习网站为黑马程序员的Hadoop可以一起学习共同进步谢谢,如有请侵权联系,本人会立即删除侵权文章。可以一起学习共同进步谢谢,如有请侵权联系,本人会立即删除侵权文章。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ambire Wallet 2022 年度回顾

在推出的第一年,Ambire Wallet 确立了自己作为 EVM 领域顶级智能合约钱包解决方案之一的地位:拥有近 10 万个账户,它通过其 NPM sig lib 和多样化的沟通努力为类别应用扫清了道路。 回顾过去一年我们最大的亮点 是的,朋友们&#…

vue路由的介绍和使用(包括前端导航、导航守卫)

文章目录路由基本使用实现简易的前端路由安装和配置vue-router路由安装vue-router包创建路由模块导入并挂载路由模块声明路由链接和占位符使用router-link替代a连接redirect重定向嵌套路由声明子级路由链接和占位符声明嵌套路由的规则动态路由动态路由匹配(基本用法)需求:在Mov…

Java源码篇之容器类——HashMap

以下是基于jdk17 Java源码篇之容器类——HashMapconstructorput()hash()putVal()resize()treeifyBin()treeify()tieBreakOrder()balanceInsertion()moveRootToFront()checkInvariants()constructor // 无参构造 public HashMap() {this.loadFactor DEFAULT_LOAD_FACTOR; // a…

多线程并发检测触发器触发算法优化,附详细代码 - 定时执行专家

目录 ◆ V6.5版之前的并行检测方案 ◆ V6.5版之前的并行检测方案存在的问题 ◆ V6.5版本的并行检测方案 ◆ 定时执行专家 - 简介 ◆ 定时执行专家 - 最新版下载 一些用户说任务数量可能达到200个,让我比较惊讶,这个软件的设计之初并没有考虑这么多的…

MySQL调优-SQL底层执行原理

目录 MySQL调优-SQL底层执行原理 MySQL内部组件结构 Server层 Store层 连接器 客户端连接mysql数据库 创建新用户并且修改用户密码: show processlist 查看用户状态 客户端自动断开时间 长连接和短连接 查询缓存 常见的一些命令操作 大多数情况查询缓存…

Linux使用gdb定位Qt程序崩溃位置(systemd-coredump)

Linux提供了systemd-coredump服务,可以配合gdb来定位到程序崩溃位置,下面介绍它们的用法。 1. systemd-coredump systemd-coredump的简单介绍: systemd-coredump能从操作系统内核中获取内存转储,并能对获取到的数据进行各种处理…

Polygon zkEVM测试集——创建合约交易

1. 引言 可通过https://www.evm.codes/playground,来深入理解EVM各opcode中stack、memory、storage之间的关系,可输入任意的opcode来观察变化。 很赞的资料集: 深入理解合约升级(2) - Solidity 内存布局深入理解 EVM(一&#xf…

力扣:两数之和与n数之和的(Map)与(排序+双指针)解法 【三刷终于明白HashMap求和的去重问题】

啃一本算法书啃了快一年了,用嘴想一想都该只剩渣了,脑子是怎么想的??? 真希望有一天“爷啃完了,爷不要你了,爷换一本啃”,,欸欸欸??罪过罪过&…

Python基础(一)

Python 的种类 CpythonPython的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 JyhtonPython的Java实…

IDEA初始化git+代码提交

IDEA初始化git 当你在代码仓库如:github or gitee 上建立好了仓库,我们在idea中该如何初始化你的git又怎么样把你的代码push到代码仓库上呢? 第一步:初始化idea中的git 在idea中的setting中搜索git,将你的git.exe路…

JVM垃圾回收器-评估GC的性能指标

文章目录学习资料垃圾回收器概述评估GC的性能指标吞吐量(throughput)暂停时间(pause time)吞吐量VS暂停时间学习资料 【尚硅谷宋红康JVM全套教程(详解java虚拟机)】 【阿里巴巴Java开发手册】https://www.…

机器学习 加利福尼亚房价预测

学习目标: 提示:导入包 例如: import pandas as pd import numpy as npfrom sklearn.datasets import fetch_california_housing from sklearn.model_selection import KFold, train_test_split from sklearn.metrics import mean_squared…

【阶段二】Python数据分析Pandas工具使用02篇:数据读取:文本文件读取、电子表格读取与数据预处理:数据概览与清洗

本篇的思维导图: 数据读取:文本文件读取 对于csv后缀的文本文件,可以使用pandas模块中的read_csv函数进行读取。 所需要的数据文件如下百度云盘链接: 链接:https://pan.baidu.com/s/1Zj-uTt_wdRcmDt3aumZ2nA 提取码:z2e8 代码

CSRF攻防基础讲解

CSRF攻击 Cross-site request forgery跨站请求伪造 场景模拟 在用户登录某个网站后,看到某篇文章高兴之余,挥手打字,突然有人发来一个链接,登录者打开链接后什么都没有操作或者只是好奇的点击了某个按钮,在原登录网…

猿客栈后台管理系统日志记录

目录 一、用户权限设置 前端逻辑 后端逻辑 二、登录界面逻辑 1、账号密码登录实现 前端逻辑 在Cookie中存储token的方法 在Cookie中存储和获取的token方法 后端逻辑 生成token工具类 2、手机号登录 前台逻辑 后台逻辑 补充:实现点击发送验证码120s倒计…

ThinkPHP 之 SQLI审计分析(二)

说明 该文章来源于同事lu2ker转载至此处,更多文章可参考:https://github.com/lu2ker/ 文章目录说明0x00 测试代码做了什么?0x01 分析调用0x02 漏洞点的发现、构造、利用0x03 总结Time:9-3影响版本:ThinkPHP5.0.10 Pa…

详细介绍chrony服务器

chrony服务器 硬件时间:BIOS里面;关机后依然运行,主板电池为它供电;RTC时钟 系统时间:开机后,软件启动读取硬件时钟,之后独立运行 Chrony 的配置文件是/etc/chrony.conf chronyd服务器端 ch…

【目标检测】Mask rcnn代码实现Pytorch版,适用30系列显卡!(测试版)

目录:Mask rcnn代码实现Pytorch版一、环境二、mmdetection环境搭建三、测试四、结果展示为什么选择使用Pytorch版本?因为本人换电脑了,显卡升级为30系列,而30系列显卡的 CUDA 版本要求是 11.x。一、环境 cudatoolkit …

MYSQL之两阶段提交和组提交(数据一致性)

我们在MySQL 的日志中详细的介绍了undo log、redo log、binlog这三个日志和所用到的一些缓存知识,那么下面我们分析一下更新语句执行过程,它们是怎么变化的呢?下面我们直接给答案吧。假如我们修改一行主键索引(id)为1的…

电力系统激励型需求响应+自适应多群体优化算法(Python实现)

目录 ​编辑 0 前言 1 激励型DR和价格型DR 2 激励型DR模型 3 Python代码实现 4 自适应多群体优化算法(AMPO) 5 Python代码实现 0 前言 风、光等清洁能源因具有环保、资源丰富等优点而受到电力行业的重视,电力行业开始大力发展清洁能源发电。同时…