Yarn资源管理器

2023-10-30

Yarn简介

Apache Yarn(Yet another Resource Negotiator)是Hadoop集群的资源管理器,负责为上层应用提供资源管理和调度。Yarn在Hadoop集群中充当资源管理和任务调度的框架。
Yarn被引入Hadoop2.0,最初是为了改善MapReduce的实现,但是因为具有足够的通用性,同样也可以支持其他的分布式计算模式,比如Spark,Tez等计算框架。

Yarn的设计思想

Yarn的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。它的思想是拥有一个全局的ResourceManager(RM),以及每个应用程序拥有一个Application(AM)。应用程序可以是单个作业,也可以是一组的作业。
一个ResourceManager和多个NodeManager构成了Yarn资源管理框架。它们是yarn启动后长期运行守护进程,来提供核心服务的。
ResourceManager,管理整个集群上所有资源的分配,内部有一个Scheduler(资源调度器)。
NodeManager,是每台机器的资源管理器,也是单个节点的管理者,负责监视容器(container)资源使用情况,并向 ResourceManager及其Scheduler报告使用情况。
container:集群上的可使用资源,包括cpu,内存,磁盘,网络等
ApplicationMaster(简称AM)实际上是框架特定的库,每启动一个应用程序,都会启动一个AM,它的任务是与ResourceManager协商资源,并与NodeManager一起执行和监视任务。

Yarn的架构

1,ResourceManager:ResourceManager负责集群中所有资源的统一管理和作业调度

  • 与客户端交互,处理来自客户端的请求

  • 启动和管理ApplicationMaster,并在它运行失败时重新启动它

  • 管理NodeManager,接收来自NodeManager的资源汇报信息,并向NodeManager下达管理指令(杀死container等)

  • 资源管理和调度,接收来自ApplicationMaster的资源申请,并为之分配资源
    2,NodeManager: NodeManager是Yarn每个具体节点的资源和任务管理者

  • 定时向ResourceManager汇报本节点上资源使用情况和各个Container的运行状况

  • 接收并处理ApplicationMaster对container的启动、停止等各种请求

  • 管理Container的生命周期,监控Contariner的资源使用

  • 管理任务日志和不同应用程序用到的附属服务(auxiliary service)
    3,ApplicationMaster:用户提交的每个应用程序均包含一个ApplicationMaster

  • 与ResourceManager调度器协商以及获取资源

  • 将得到的资源进一步分配给内部的任务

  • 与NodeManager通信以启动和停止服务

  • 监控所有任务的运行状态,并在任务运行失败时,负责进行容错处理
    4,Container
    Container是Yarn的资源抽象,它封装了某个节点上的多个维度的资源,如CPU、内存、磁盘、网络等。当ApplicationMaster申请资源时,ResourceManager为ApplicationMaster返回的资源是用Container表示的。

提交Application到Yarn的流程

1,作业提交
第一步:
client读取作业配置信息并创建Job的环境,调用job.waitForCompletion方法,向集群提交一个MapReduce作业。
第二步:
资源管理器给任务分配一个新的作业ID
第三步:
计算输入文件的分片,将作业的资源(包括Jar包、配置文件、split信息)拷贝到HDFS集群上的作业提交目录
第四步:
通过调用资源管理器的submitApplication()来提交作业

2,作业初始化
第五步:
当资源管理器收到submitApplication()的请求时,就将该请求发送给调度器(scheduler),调度器向NodeManager发送一个启动container的请求
第六步:
节点管理器NodeManager启动Container,内部运行着一个主类为MRAppMaster的Java应用。其通过创造一些对象来监控作业的进度,得到各个task的进度和完成报告。
第七步:
通过分布式文件系统HDFS来获取由客户端提前算好的输入split,然后为每个输入split创建一个Map任务,根据mapreduce.job.reduces创建reduce任务对象

3,任务分配
如果作业很小,为了降低延迟,可以采用Uber模式。在该模式下,所有的Map Task和Reduce Task都在ApplicationMaster所在的Container中运行。

第八步:
如果不是小作业,那么应用管理器向资源管理器请求container来运行所有的map和reduce任务

这些请求是通过心跳来传输的,包括每个map任务的数据位置,比如:存放输入split的主机名和机架(rack),调度器利用这些信息来调度任务,尽量将任务分配给数据的节点和相同机架的节点。

4,任务运行
第九步:
当一个任务是由资源管理器的调度器分配给一个container后,AppMaster通过联系NodeManager来启动container
第十步:
任务由一个主类为YarnChild的Java应用程序执行后,在运行任务之前先本地化需要的资源。
第十一步:
启动并运行map和reduce任务

5,进度和状态更新

Yarn中任务将其进度和状态返回给ApplicationMaster。
客户端每秒向ApplicationMaster请求进度更新,展示给用户。

6,作业完成
除了向Application请求作业进度外,客户端会通过waitForCompletion()检查作业是否完成。
作业完成之后,应用管理器和Container会清理工作状态、作业的执行详情记录文件会被转移到历史服务器目录、container的执行日志会被nodemanager会被上传到hdfs集群供用户长期查询,

Yarn的三种调度器(Scheduler)

Scheduler(调度器),根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

  1. FIFO Scheduler(FIFO调度器):FIFO调度器将应用放在一个队列中,按照先后顺序运行应用。这种策略较为简单,但是不适合共享集群。因为大的应用会占用集群的所有资源,每个应用必须等待直到轮到自己。
  2. Capacity Scheduler(容量调度器):允许多个组织共享一个Hadoop集群,使用容量调度器时,一个独立的专门队列保证小作业一提交就可以运行。这个策略是以整个集群利用率为代价的,大作业的执行事件会长一些
  3. Fair Scheduler(公平调度器):公平调度器的目的是为所有运行的应用公平的分配资源。使用公平调度器时,不需要预留一定量的资源,因为公平调度器会在所有运行的作业之间动态平衡资源。每个作业启动后,都会分到相同的集群中的资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yarn资源管理器 的相关文章

  • signature=eb47f6441363b915ee5eb8456d7928a2,yarn.lock

    THIS IS AN AUTOGENERATED FILE DO NOT EDIT THIS FILE DIRECTLY yarn lockfile v1 abbrev 64 1 version 34 1 1 1 34 resolved 3
  • 如何在 Ubuntu 18.04 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中
  • npm和yarn安装与更换国内源地址

    安装 https classic yarnpkg com en docs install windows stable 查询与更换源 yarn config get registry 国内淘宝源 yarn config set regist
  • YARN的工作机制

    lt 1 gt 主要作用 强化控制和使用资源管理功能 lt 2 gt 工作机制 1 MapReduce提交到客户端所在节点 2 客户端向资源管理器提交申请 在将应用程序返回给客户端 将运行资源提交到HDFS上 提交完毕后申请运行 3 RM将
  • nvm安装node ,yarn

    新电脑安装前端环境 1 先安装nvm 它是一个nodejs的版本管理工具 nvm 下载地址是github中的 推荐下载安装版 一键安装 自动配置环境变量 https github com coreybutler nvm windows re
  • Yarn资源管理器

    Yarn简介 Apache Yarn Yet another Resource Negotiator 是Hadoop集群的资源管理器 负责为上层应用提供资源管理和调度 Yarn在Hadoop集群中充当资源管理和任务调度的框架 Yarn被引入
  • 【yarn】yarn LocalizedResource 状态机正常执行流程

    1 概述 上一篇文章 Yarn Yarn Service端如何处理客户端提交的任务 在上一篇文章中 我们知道服务器接收到客户端提交的任务之后 会启动多个状态机进行联合操作 最终来解决任务提交之后的全流程 多个状态机合作完成任务 然后我们看了
  • commitlint无效 commit-msg不执行

    一 安装commitlint yarn add commitlint config conventional commitlint cli D 二 commitlint无效 commit msg不执行 解决办法 1 删除package js
  • npm、pnpm、yarn的常用命令

    npm pnpm yarn的常用命令 文章目录 npm pnpm yarn的常用命令 一 常用命令 1 npm命令 2 pnpm命令 3 yarn命令 二 对比 一 常用命令 1 npm命令 npm init 初始化一个新的npm包 npm
  • YARN与MapReduce1的区别

    YARN与MapReduce1的区别 1 组成对比 MapReduce1中 两类守护进程控制着作业执行过程 一个JobTracker和一个或多个TaskTracker JobTracker通过调度TaskTracker上运行的任务来协调所有
  • cnpm下载、cnpm不存在处理、yarn安装

    1 cnpm全局安装 npm install g cnpm registry https registry npm taobao org 2 运行cnpm v 报错 不是内部环境 3 解决办法 在环境变量里添加路径 cmd中输入以下命令获取
  • yarn遇到的问题啦,This may cause things to work incorrectly. Make sure to use the same version for both

    yarn的时候出错 This may cause things to work incorrectly If you are using vue loader lt 10 0 or vueify re installing vue load
  • 【YARN】(1)-- 整体架构、RM、NM、AM等基础组件快速理解

    一 Yarn的功能和整体架构 Apache Hadoop YARN Yet Another Resource Negotiator 另一种资源协调者 是一种新的 Hadoop 资源管理器 它是一个通用资源管理系统和调度平台 可为上层应用提供
  • npm、cnpm、yarn之间的区别

    npm 在使用 npm 安装包的时候 给人的第一感觉就是慢 而且还会在命令行打印出一堆的东西 而且经常会出现 在我的电脑上可以 这个问题 着实是有点难受 但也不得不说 npm 是 node 如此成功的主要原因之一 npm的缺点如下 1 由于
  • react+antd+vscode的运行环境搭建

    初学者 在学着做一个前端项目 有时候要换新电脑 或者重装系统 前端代码就不能用了 解决时候总是忘记还遇到麻烦 记录一下 按步骤来吧 也不知道对不对 先这样用着 1 下载vscode 就去官网下就完事 好像点下载会根据电脑的系统版本位数啥的下
  • YARN异常YarnException:Failed while publishing entity的解决方案

    版本 HDP3 0 mapreduce提交任务计算时 job已经结束 但是容器仍不能关闭持续等待五分钟 INFO Thread 100 org apache hadoop yarn event AsyncDispatcher Waiting
  • Hadoop(五)Yarn

    Hadoop 五 Yarn 一 Yarn基本理论 1 Yarn架构 2 Yarn工作机制 3 Yarn调度器 4 Yarn常用命令 5 Yarn参数配置 二 tool接口 一 Yarn基本理论 1 Yarn架构 Resource Manag
  • 如何在 Ubuntu 20.04 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它缓存每个下载包并通过并行操作加快安装过程 在本教程中 我们将解释如何安装Yarn在 Ubuntu 20 04 上
  • Hadoop2.6(新版本)----MapReduce工作原理

    最近在研究Hadoop 发现网上的一些关于Hadoop的资料都是以前的1 X版本的 包括MapReduce的工作原理 都是以前的一些过时了的东西 所以自己重新整理了一些新2 X版本的MapReduce的工作原理 下面我画了一张图 便于理解M
  • Vue使用高德地图搜索功能

    下载依赖 yarn add amap amap jsapi loader 2 初始化高德地图 设置key和秘钥

随机推荐

  • 一文带你实现刷新页面数据不丢失(操作状态保留)效果

    页面刷新后对数据的操作状态进行保留 也就是页面刷新数据不丢失效果 是我们对前端项目开发中一个算是比较基本的效果了 其实实现的话也是很简单的 今天就来带你一文彻底弄懂此效果的实现 其实总结起来有以下三个比较重要的点 1 监听要保留状态的数据
  • 【文献管理】Zotero基础操作

    文献管理 Zotero基础操作 文章目录 文献管理 Zotero基础操作 一 安装 注册 二 文献导入 1 新建文件夹 2 导入方式 三 文献管理 1 添加标签 2 添加笔记 3 添加插件 四 数据管理与同步 1 数据存放位置 2 数据备份
  • 操作系统模拟页面调度算法(OPT、FIFO、LRU)演示(vc6.0调试通过)

    PageSwitch cpp Defines the entry point for the console application include stdafx h 请分别用FIFO OPT算法实现 页面置换 的模拟 模拟程序的要求如下
  • python数据解析——xpath爬取文字和图片

    xpath解析 最常用且最便捷高效的一种解析方式 通用性 xpath解析原理 1 实例化一个etree的对象 且需要将被解析的页面源码数据加载到该对象中 2 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕
  • 基于redis实现延时队列(二)

    背景 上篇文章中使用了redis的zset 定时器实现延时任务 虽然定时器设置为30秒执行一次 但是还是有时间上的差异化 现更换一种方式实现 可以避免时间上的差异 redis的key过期回调事件 也能达到延迟队列效果 配置修改 redis的
  • QT—3D绘图

    OpenGL是一个跨平台的 用来渲染3D图形的标准API Qt对OpenGL提供了强大的支持 Qt4时代的QtOpenGL模块在Qt5中已经不再建议使用 OpenGL相关的类被移到了Qt GUI模块 Qt Widgets模块中的QOpenG
  • csharp(CS0051)

    net6 定义了一个类 里面有一个枚举 报csharp CS0051 enum Sex Male Female public class Student string name int age Sex sex public Student
  • torch.quantile or np.quantile的计算

    torch的文档详细说明了quantile的计算方法 主要是将q的范围 0 1 转成输入index的范围 0 n 也就是说 将q 乘 n 然后插值计算 quantile位置不是整数 a torch tensor 0 0 1 1 2 1 3
  • 【已解决】5.24 代码问题——TensorFlow==1.14.0版本安装

    安装TensorFlow1 14 0总是显示 ERROR Could not find a version that satisfies the requirement tensorflow1 14 from versions 2 5 0
  • 百度商业大规模微服务分布式监控系统-凤睛

    导读 作为凤睛早期的接入方 后期的核心成员 笔者经历了整个项目前后四年的变迁 看过项目的艰难开端 中期的默默积累以及后期的蓬勃发展 每一次架构的变迁都带着技术浪潮的烙印 也看到项目成员利用有限资源来解决实际问题而持续不断的创新 凤睛是百度商
  • 关于Mac下appid登录提示‘This action could not be completed.’

    情景 打开xcode 运行工程时 xcode提示输入公司开发者账号密码 惊讶 之前没出现过的 按照要求输入密码 但又提示账号过期或密码可能被修改等 于是立马用账号去登陆开发者中心 确保正常登陆后 才放下心来 百度了下 把xcode偏好设置里
  • MySQL-SQL存储过程/触发器详解(下)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • 人工智能课程实践-A* 算法编程实践(python实现)

    本次实验的代码由python编写完成 代码在附录中 需要请自取 1 实验目的 1 熟悉启发式搜索算法 A搜索算法的理论 实现方法 2 掌握A 搜索算法的核心算法实现过程 3 理解A 搜索算法如何解决现实工程问题 学会分析现实问题蕴含的搜索求
  • web项目引入PDF.js并添加水印禁止下载

    目录 web项目引入PDF js并添加水印禁止下载 1 下载并引入PDF js实现预览 2 动态预览PDF文件 3 隐藏打开 下载 打印等功能 4 禁止键盘组合按键下载或另存为 5 禁用鼠标操作 6 添加全局水印 6 PDF文件预览效果 w
  • 信息学奥赛一本通(C++版) 第一部分 C++语言 第一章 C++语言入门

    总目录详见 https blog csdn net mrcrack article details 86501716 信息学奥赛一本通 C 版 第一部分 C 语言 第一章 C 语言入门 http ybt ssoier cn 8088 100
  • python Read timed out 解决方法

    python m pip install upgrade pip 报超时 解决方案 指定镜像 i https pypi doubanio com simple 如 python m pip install upgrade pip user
  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException

    com mysql jdbc exceptions jdbc4 MySQLNonTransientConnectionException Communications link failure during rollback Transac
  • 物联网开发笔记(50)- 使用Micropython开发ESP32开发板之控制HC-SR501人体红外感应传感器

    一 目的 这一节我们学习如何使用我们的ESP32开发板来控制HC SR501人体红外感应传感器 二 环境 ESP32 HC SR501人体红外感应传感器 Thonny IDE 几根杜邦线 接线方法 三 代码 from machine imp
  • 正态分布(高斯分布)、Q函数、误差函数、互补误差函数

    1 正态分布 高斯分布 若随机变量 XX 服从一个位置参数为 尺度参数为 的概率分布 且其概率密度函数为 f x 12 e x 22 2f x 12 e x 22 2 则这个随机变量就称为正态随机变量 正态随机变量服从的分布就称为正态分布
  • Yarn资源管理器

    Yarn简介 Apache Yarn Yet another Resource Negotiator 是Hadoop集群的资源管理器 负责为上层应用提供资源管理和调度 Yarn在Hadoop集群中充当资源管理和任务调度的框架 Yarn被引入