YARN原理总结

2023-11-09

问题导读

1.hadoop1.x中mapreduce框架与yarn有什么共同点?
2.它们有什么不同点?
3.yarn中有哪些改变?
4.yarn中有哪些术语?


yarn是比较难懂的一个地方,也是很重要的一个组件,不止hadoop使用yarn,spark,storm也可以使用yarn。因此yarn的理解是非常重要的。如果刚开始学习,其实还是挺难懂的。因为很多的概念比较抽象。


相同点
hadoop2.x的发展是由于hadoop1.x的问题造成的。
那么是什么问题造成的。比较流行的说法是jobtracker的问题,比如单点故障,任务过重。我们知道了除了Jobtracker,同时还有一个TaskTracker。我们看下图:

上图中,有一个JobTracker,多个TaskTracker

Yarn比较

我们在来看yarn


我们看到有一个ResourceManager,多个NodeManager
也就是说hadoop1.x mapreduce框架与hadoop2.x yarn,他们的框架相同之处,都是分布式的
再次总结相同处:
JobTracker一个,TaskTracker多个
resourceManager一个,NodeManager多个

不同点
既然他们框架结构是相同的,那么到底是什么原因,淘汰JobTracker机制。
这时候我们就需要看看JobTracker到底干了哪些事情。

再看上图:JobTacker概述
JobTacker其承担的任务有:接受任务、计算资源、分配资源、与DataNode进行交流
在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任务,JobTracker的作业控制模块则负责作业的分解和状态监控。
*最重要的是状态监控:主要包括TaskTracker状态监控、作业状态监控和任务状态监控。主要作用:容错和为任务调度提供决策依据。
TaskTracker概述
TaskTracker是JobTracker和Task之间的桥梁:一方面,从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等;另一方面,将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信

TaskTracker的功能:
1.汇报心跳:Tracker周期性将所有节点上各种信息通过心跳机制汇报给JobTracker。这些信息包括两部分:
*机器级别信息:节点健康情况、资源使用情况等。
*任务级别信息:任务执行进度、任务运行状态等。
2.执行命令:JobTracker会给TaskTracker下达各种命令,主要包括:启动任务(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、杀死作业(KillJobAction)和重新初始化(TaskTrackerReinitAction)。
资源slot概述
slot不是CPU的Core,也不是memory chip,它是一个逻辑概念,一个节点的slot的数量用来表示某个节点的资源的容量或者说是能力的大小,因而slot是 Hadoop的资源单位。

hadoop中什么是slots
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7562


yarn详解

Yarn的基本思想是拆分资源管理的功能,作业调度/监控到单独的守护进程
这里面出现了很多名词:
ResourceManager,NodeManager,ApplicationMaster,Container,同样下面亦是yarn结构图。
ResourceManager是全局的,负责对于系统中的所有资源有最高的支配权
ApplicationMaster 每一个job有一个ApplicationMaster 。
NodeManagerNodeManager是基本的计算框架
NodeManager 是客户端框架负责 containers, 监控他们的资源使用 (cpu, 内存, 磁盘, 网络) 和上报给 ResourceManager/Scheduler.
ApplicationMaster首先它是一个框架库,它的功能官网说的不够系统,大意,由于NodeManager 执行和监控任务需要资源,所以通过ApplicationMaster与ResourceManager沟通,获取资源。换句话说,ApplicationMaster起着中间人的作用
转换为更专业的术语:AM负责向ResourceManager索要NodeManager执行任务所需要的资源容器,更具体来讲是ApplicationMaster负责从Scheduler申请资源,以及跟踪这些资源的使用情况以及任务进度的监控

ResourceManager有两个组件:调度器应用程序管理器。 
调度器(Scheduler)是可插拔的,比如有Fair Scheduler、Capacity Scheduler等,当然调度器也可以自定义。
更多相关内容:
Hadoop YARN配置参数剖析(4)—Fair Scheduler、Capacity Scheduler相关参数
http://www.aboutyun.com/forum.php?mod=viewthread&tid=5864

应用程序管理器
负责接收提交的任务,指定ApplicationMaster申请资源(container) ,协调并提供在ApplicationMaster容器失败时的重启功能。


而下图也是官网提供内容,大家可以参考下。


总结
为了更好的理解,我们就需要跟hadoop1.x比较:
为何要使用yarn。
我们看到JobTracker的功能被分散到各个进程中包括ResourceManager和NodeManager:
比如监控功能,分给了NodeManager,和Application Master。
ResourceManager里面又分为了两个组件:调度器及应用程序管理器。
也就是说Yarn重构后,JobTracker的功能,被分散到了各个进程中。同时由于这些进程可以被单独部署所以这样就大大减轻了单点故障,及压力。

同时我们还看到Yarn使用了Container,而hadoop1.x中使用了slot。slot存在的缺点比如只能map或则reduce用。Container则不存在这个问题。这也是Yarn的进步。


YARN的配置与启动

通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

首先修改配置文件 mapred-site.xml,这边需要先进行重命名:将mapred-site.xml.template文件改成mapred-site.xml

再进行编辑

<configuration>
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
</configuration>

接着修改yarn-site.xml

<configuration>
        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
            </property>
</configuration>
然后就可以启动 YARN 了(需要先执行过  ./sbin/start-dfs.sh ):

./sbin/start-yarn.sh      # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行情况
开启后通过  jps  查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程。

启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster


YARN的关闭

不启动 YARN 需重命名 mapred-site.xml

如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。

同样的,关闭 YARN 的脚本如下:

./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver


参考资源:
hadoop入门:第六章YARN文档概述
http://www.aboutyun.com/forum.php?mod=viewthread&tid=17338
http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/YARN.html
http://www.2cto.com/kf/201311/260826.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YARN原理总结 的相关文章

  • signature=0fdde99449705347b1bc3148e0519684,ImageOptim-CLI/yarn.lock at master · JamieMason/ImageOpti...

    THIS IS AN AUTOGENERATED FILE DO NOT EDIT THIS FILE DIRECTLY yarn lockfile v1 34 64 babel code frame 64 7 0 0 34 version
  • signature=ada6640b4b5c9f5a7a3dc2c4ac92d154,luban-h5/yarn.lock at master · binball72956/luban-h5 · Gi...

    THIS IS AN AUTOGENERATED FILE DO NOT EDIT THIS FILE DIRECTLY yarn lockfile v1 34 64 babel code frame 64 7 0 0 34 version
  • 如何在 Debian 9 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中 我们将指导您如何安装Yarn在 Debian 9 系统上
  • 如何在 CentOS 8 上安装 Yarn

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

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

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

    1 概述 上一篇文章 Yarn Yarn Service端如何处理客户端提交的任务 在上一篇文章中 我们知道服务器接收到客户端提交的任务之后 会启动多个状态机进行联合操作 最终来解决任务提交之后的全流程 多个状态机合作完成任务 然后我们看了
  • yarn.lock、package-lock.json、npm-shrinkwrap.json的区别

    总的来说yarn lock和package lock json起的作用相同 只不过yarn是默认的 npm到5以后才会出现lock package lock json是npm5的新特性 也不向前兼容 如果npm版本是4或以下 那得用npm
  • npm安装两个相同的库方法

    特殊情况下一个node项目中我们需要安装两个相同的库 package json devDependencies demoA vue auto routing npm vue auto routing 1 0 1 目录名 库名 指定npm库版
  • yarn的常用命令以及与npm的对比

    yarn安装 在yarn的官网下载yarn并安装或者 npm i yarn g 查看版本 Yarn v 1 初始化一个新项目 yarn init 与 npm init 一样通过交互式会话创建一个 package json yarn init
  • 如何在 CentOS 7 上安装 Yarn

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

    作为一名前端程序员 对npm和yarn这两个包管理器一定不陌生 那么你听说过pnpm么 它到底是个什么东西 和npm还有yarn有什么区别 又有什么作用呢 本文就将解决以下这几个问题 pnpm是什么 有什么作用 pnpm有什么优势和特点 p
  • yarn错误The engine “node“ is incompatible with this module

    错误 error commander 9 0 0 The engine node is incompatible with this module Expected version 12 20 0 gt 14 Got 12 18 2 err
  • 【Yarn】YARN 核心设计 yarn 核心 service 是如何运行的

    文章目录 1 概述 2 案例 2 1 service 2 2 状态类 2 3 抽象类 2 4 组合service 2 5 组合service 2 6 ResourceManager 1 概述 上一篇文章 Yarn Yarn NodeMana
  • react+antd+vscode的运行环境搭建

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

    Hadoop 五 Yarn 一 Yarn基本理论 1 Yarn架构 2 Yarn工作机制 3 Yarn调度器 4 Yarn常用命令 5 Yarn参数配置 二 tool接口 一 Yarn基本理论 1 Yarn架构 Resource Manag
  • YARN 删除所有ACCEPTED任务的命令

    删除所有ACCEPTED任务的命令 for i in yarn application list grep w ACCEPTED awk print 1 grep application do yarn application kill i
  • 如何在 CentOS 8 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 使用 Node js 您可以构建可扩展的网络应用程序 npm 是 Node Pa
  • 初识pnpm

    初识pnpm 介绍 pnpm和npm yarn一样 都是包管理器 但是pnpm节约磁盘空间并且安装很快 所有的报会存储在硬盘的同一个位置 多个项目使用了同一个包时 在pnpm中他们是公用的 只会存储一遍 下次需要用到这个包时就会从硬盘中查找
  • 关于yarn安装时报“node“ is incompatible with this module的解决办法

    前提 在用vue写一个h5页面时 当在用yarn安装时 提示如下错误 The engine node is incompatible with this module Expected version 14 18 0 16 14 0 gt

随机推荐

  • 留学文书可以彻底被AI取代吗?留学顾问是否会被AI逼到墙角?

    近日 ChatGPT再次 进化 其最新版本ChatGPT 4又掀高潮 其生产者OpenAI 称 ChatGPT 4是最先进的系统 能生产更安全和更有用的回复 和上一代相比 GPT 4拥有了更广的知识面和更强的解决问题能力 在创意 视觉输入和
  • Qt中图像的显示与基本操作

    Qt可显示基本的图像类型 利用QImage QPxmap类可以实现图像的显示 并且利用类中的方法可以实现图像的基本操作 缩放 旋转 1 Qt可显示的图像类型 参考Qt的帮助文档 可支持的类型 即可以直接读取并显示的格式有BMP GIF JP
  • Java Package 访问控制权限 相关

    Java Package 访问控制权限 1 1 关于java的包机制 1 2 带有package的java程序如何执行 1 3 访问控制权限 1 1 关于java的包机制 不同功能的类放到不同的软件包中 查找方便 解决类的重名问题 1 2
  • 实验2熟悉常用的HDFS操作

    1 实验目的 1 理解HDFS在Hadoop体系结构中的角色 2 熟练使用HDFS操作常用的Shell命令 3 熟悉HDFS操作常用的Java API 2 实验平台 1 操作系统 Linux 2 Hadoop版本 2 7 4 3 JDK版本
  • 详解ETL银行数据仓储抽取和加载流程概述

    ETL和ELT ETL是Extract Transfrom Load即抽取 转换 加载三个英文单词首字母的集合 E 抽取 从源系统 Souce 获取数据 T 转换 将源系统获取的数据进行处理加工 比如数据格式转化 数据精度转换 数据清洗 缺
  • python绘制小提琴图_Python:matplotlib 和 Seaborn 之热图、小提琴图和箱线图 (三十四)...

    热图 热图是直方图的二维版本 可以替代散点图 和散点图一样 要绘制的两个数字变量的值位于坐标轴上 和直方图类似 图形区域被划分为网格 并将每个网格的点数加起来 因为没有空间表示长条高度 因此用网格颜色表示计数 你可以通过 Matplotli
  • android module 之间引入出现manifest 冲突

    原因 manifest 文件中属性冲突 例如 原因是导入的库在build gradle中的minSdkVersion与你的应用的minSdkVersion不匹配导致的 app要求应用最小系统版本和库要求系统最小版本不一致 改成 样的就行了
  • 怎么提高团队的代码质量

    1 java代码规范 阿里巴巴IDEA代码规范包 安装和使用的方法 https www jianshu com p 8973b20f2de9 2 编写高质量的单元测试 开发人员能提交测试之前 通过单元测试完成自测 3 保证代码质量要做到持续
  • unity 鼠标点击在2D 物体上 和UI上

    unity 鼠标点击在2D 物体上 和UI上 1 鼠标是否点击在2D 物体上
  • Git的下载与安装教程

    一 Git下载 官网下载地址 Git git scm com 点击 Download for Windows 跳转至详细下载页面 以Windows64位安装版为例 点击 64 bit Git for Windows Setup 即可进行下载
  • 3分钟阿里云服务器网络收发包PPS性能详解

    阿里云服务器ECS网络收发包PPS是什么 云服务器PPS多少合适 网络收发包PPS是指云服务器每秒可以处理的网络数据包数量 单位是PPS即packets per second每秒发包数量 阿里云百科来详细说下阿里云服务器网络收发包PPS性能
  • 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    Unity学习笔记 Unity中文课堂教程 C 中级编程代码 最近想补一补C 基础 Unity官方的C 中级编程教程质量很高 于是开个帖子把跟着敲 记录了部分价讲解和我自己的理解的代码存在这 原课程链接 添加链接描述 https www b
  • s3c2440上的nor flash启动与nand flash启动的区别

    nor flash启动与nand flash启动的区别 1 接口区别 NOR FLASH地址线和数据线分开 来了地址和控制信号 数据就出来 NAND Flash地址线和数据线在一起 需要用程序来控制 才能出数据 通俗的说 就是光给地址不行
  • vue基础之组件化及父子间通信

    基本组件拆分和嵌套 为了不是项目看起来复杂难懂 所以我们采用组件化开发 所有的组件单独放 在需要使用的地方嵌套即可 app vue
  • Vue组件嵌套和组件通信

    一 组件嵌套 组件嵌套 在一个组件中使用另一个组件 div div
  • Lodash中的_.cloneDeep(value) 深拷贝和_.clone(value) 浅拷贝

    Lodash 是一个一致性 模块化 高性能的 JavaScript 实用工具库 cloneDeep value 这个方法类似 clone 除了它会递归拷贝 value 注 也叫深拷贝 参数 value 要深拷贝的值 返回 返回拷贝后的值 例
  • 距离计算方法-聚类

    k 均值聚类算法的性能会受到所选距离计算方法的影响 所以 今天总结了一下有关距离计算的一些总结 如有错误 望大家指正 1 欧式距离是大家最熟悉的了 比如两点之间的距离的计算 可以写成向量的运算形式 工程中用的最多 2 曼哈顿距离 Manha
  • TypeScript学习(Never、辨析联合类型、索引签名)

    Never 程序语言的设计确实应该存在一个底部类型的概念 当你在分析代码流的时候 这会是一个理所当然存在的类型 TypeScript 就是这样一种分析代码流的语言 因此它需要一个可靠的 代表永远不会发生的类型 never 类型是 TypeS
  • 黑客常用的攻击手段

    黑客攻击手段分为非破坏性攻击和破坏性攻击两大类 非破坏性攻击一般只是为了扰乱系统的运行 并不盗窃系统资料 通常采用拒绝服务攻击或信息炸弹 破坏性攻击是以入侵他人电脑系统 盗窃系统保密信息 破坏目标系统的数据为目的的 下面介绍黑客常用的几种攻
  • YARN原理总结

    问题导读 1 hadoop1 x中mapreduce框架与yarn有什么共同点 2 它们有什么不同点 3 yarn中有哪些改变 4 yarn中有哪些术语 yarn是比较难懂的一个地方 也是很重要的一个组件 不止hadoop使用yarn sp