搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
秋刀鱼在做梦
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【git】一文让你入门git的使用_一文搞定git
2
Spring详解(学习总结)_spring框架原理及流程
3
如何保护Linux服务器安全?_linux 服务器怎么安全防护
4
学习AI画画_stockimg.ai
5
使用flink将mysql数据入湖delta_mysqlsource.
builder()
6
如何使用Spring Boot进行单元测试
7
Studio One安装教程+软件安装包下载_studio one注册机
8
c语言插入排序算法:直接插入排序和希尔排序_c语言的插入算法
9
git clone 项目报错early EOF 的解决方式
10
本地离线部署Ai大模型的三种方案,含安装教程!_本地ai大模型
当前位置:
article
> 正文
Apache Hadoop YARN简介_apache hadoop yarn:
作者:秋刀鱼在做梦 | 2024-06-27 18:36:13
赞
踩
apache hadoop yarn:
Apache Hadoop YARN
(Yet Another Resource Negotiator,另一种资源协调者)是
Hadoop2.0中
的资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
YARN的基本思想是将JobTracker的两个主要功能(
ResourceManagement
资源管理和
JobScheduling/JobMonitoring
作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。
YARN 分层结构的本质是 ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager 将各个资源部分(计算、内存、带宽等)精心安排给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。ApplicationMaster 承担了以前的 TaskTracker 的一些角色,ResourceManager 承担了 JobTracker 的角色。
在Yarn中我们把job的概念换成了application,因为在新的Hadoop2.x中,运行的应用不只是MapReduce了,还有可能是其它应用如一个DAG(有向无环图Directed Acyclic Graph,例如storm应用)。Yarn的另一个目标就是拓展hadoop,使得它不仅仅可以支持MapReduce计算,还能很方便的管理诸如Hive、Hbase、Pig、Spark/Shark等应用。这种新的架构设计能够使得各种类型的应用运行在Hadoop上面,并通过Yarn从系统层面进行统一的管理,也就是说,有了Yarn,各种应用就可以互不干扰的运行在同一个Hadoop系统中,共享整个集群资源,如下图所示:
YARN的核心思想
将JobTracker和TaskTacker进行分离,它由下面几大构成组件:
1. 一个全局的资源管理器 ResourceManager
2.ResourceManager的每个节点代理 NodeManager
3. 表示每个应用的 ApplicationMaster
4. 每一个ApplicationMaster拥有多个Container在NodeManager上运行
Yarn的组件详解
ResourceManager(RM)
RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。
调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。需要注意的是,该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作,比如不负责监控或者跟踪应用的执行状态等,也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务,这些均交由应用程序相关的ApplicationMaster完成。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念“资源容器”(Resource Container,简称Container)表示,Container是一个动态资源分配单位,它将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量。此外,该调度器是一个可插拔的组件,用户可根据自己的需要设计新的调度器,YARN提供了多种直接可用的调度器,比如Fair Scheduler和Capacity Scheduler等。
应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它等。
ApplicationMaster(AM)
用户提交的每个应用程序均包含一个AM,主要功能包括:
1.与RM调度器协商以获取资源(用Container表示);
2.将得到的任务进一步分配给内部的任务(资源的二次分配);
3.与NM通信以启动/停止任务;
4.监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
当前YARN自带了两个AM实现,一个是用于演示AM编写方法的实例程序distributedshell,它可以申请一定数目的Container以并行运行一个Shell命令或者Shell脚本;另一个是运行MapReduce应用程序的AM—MRAppMaster。
注:RM只负责监控AM,在AM运行失败时候启动它,RM并不负责AM内部任务的容错,这由AM来完成。
NodeManager(NM)
NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。
Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
注:1. Container不同于MRv1中的slot,它是一个动态资源划分单位,是根据应用程序的需求动态生成的。
2. 现在YARN仅支持CPU和内存两种资源,且使用了轻量级资源隔离机制Cgroups进行资源隔离。
YARN的资源管理和执行框架都是按主/从范例实现的——Slave ---节点管理器(NM)运行、监控每个节点,并向集群的Master---资源管理器(RM)报告资源的可用性状态,资源管理器最终为系统里所有应用分配资源。
特定应用的执行由ApplicationMaster控制,ApplicationMaster负责将一个应用分割成多个任务,并和资源管理器协调执行所需的资源,资源一旦分配好,ApplicationMaster就和节点管理器一起安排、执行、监控独立的应用任务。
需要说明的是, YARN不同服务组件的通信方式采用了事件驱动的异步并发机制,这样可以简化系统的设计。
Yarn应用提交过程分析
Application在Yarn中的整个执行过程可以总结为三步:
1. 应用程序提交
2. 启动应用的ApplicationMaster实例
3. ApplicationMaster实例管理应用程序的执行
1.客户端程序向ResourceManager提交应用并请求一个ApplicationMaster实例
2.ResourceManager找到可以运行一个Container的NodeManager,并在这个Container中启动ApplicationMaster实例
3.ApplicationMaster向ResourceManager进行注册,注册之后客户端就可以查询ResourceManager获得自己ApplicationMaster的详细信息,以后就可以和自己的ApplicationMaster直接交互了
4.在平常的操作过程中,ApplicationMaster根据resource-request协议向ResourceManager发送resource-request请求
5.当Container被成功分配之后,ApplicationMaster通过向NodeManager发送container-launch-specification信息来启动Container, container-launch-specification信息包含了能够让Container和ApplicationMaster交流所需要的资料
6.应用程序的代码在启动的Container中运行,并把运行的进度、状态等信息通过application-specific协议发送给ApplicationMaster
7.在应用程序运行期间,提交应用的客户端主动和ApplicationMaster交流获得应用的运行状态、进度更新等信息,交流的协议也是application-specific协议
8.一但应用程序执行完成并且所有相关工作也已经完成,ApplicationMaster向ResourceManager取消注册然后关闭,用到所有的Container也归还给系统
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/763378
推荐阅读
article
Hadoop
2.0
:主流
开源
云
架构
(二)_主流
开源
云
架构
hadhoop
实验...
本文讲解
Hadoop
2.0
主流
开源
云
架构
,介绍
Hadoop
2.0
简述和
Hadoop
2.0
部署。_主流
开源
云
架构
hadh...
赞
踩
article
w
in
dows下安装
spark
+
hadoop
+ py
spark
_futurewarn
in
g: ...
spark
依赖的是
hadoop
和Java不能有空格,不然会提示找不到PATH
hadoop
不支持w
in
dows,需要安装一...
赞
踩
article
Windows10
Py
spark
+
Hadoop
环境配置_
windows
spark
hadoop
...
Hadoop
补丁包下载地址:https://github.com/kontext-tech/winutils,_win...
赞
踩
article
Py
spark
Windows
测试环境部署(
Hadoop
、
Spark
、
IDEA
)、Py
spark
读取...
新增hadoop-3.3.1\namenode、hadoop-3.3.1\datanode、hadoop-3.3.1\c...
赞
踩
article
基于Hadoop3.2
的
搜狗
网
搜索
日志行为分析(18)--通过
Spark
SQL
进行离线分析_
搜狗
网...
Spark
SQL
源自于Shark项目,但是Shark对于Hive
的
太多依赖(如采用Hive
的
语法解析器、查询优化器等等...
赞
踩
article
跟我
一起
学【
Hadoop
】之
—
—
经典
场景
分析
...
1.hive 切片表和历史分区表 查询效率的测试hive分区表陷阱(不load数据到hive,而是put数据到hdfs分...
赞
踩
article
Hadoop
-
0.20
.0源代码分析(13)_
对
hdfs
通信协议
理解...
通过
对
org.apache.hadoop.ipc包中,
Hadoop
实现了基于IPC模型的RPC机制,可以不需要像Java...
赞
踩
article
hadoop
2.2
.X 配置参数说明:
hdfs
-
site
.
xml
...
<!--Thu Aug 15 20:47:13 2013--> <configuration> ...
赞
踩
article
大数据平台搭建:
Hadoop
-3.x +
Spark
-2.x +
Hive
-2.x +
Hbase
-...
换了新笔记本,做个笔记。一,软件准备(自取所需)Java-1.8Scala-2.11
Hadoop
-3.1.1
Spark
-...
赞
踩
article
beeline执行insert命令时报错
Permission
denied
:
user
=anonym...
0: jdbc:
hive
2://localhost:10000/cr> insert into student v...
赞
踩
article
【
hadoop
】
Hadoop
3.3
.
4
集群
安装及简单使用_
hadoop
3.3
.
4
集群
搭建...
Hadoop
3.3
.
4
集群
安装及简单配置_
hadoop
3.3
.
4
集群
搭建
hadoop
3.3
.
4
集群
搭建 ...
赞
踩
article
sqoop
(
Hadoop
(
Hive
)与传统的
数据
库
(
mysql
..)间进行
数据
的传递工具) 基础概...
Sqoop(发音:skup)是一款开源的工具,主要用于在
Hadoop
(
Hive
)与传统的
数据
库
(
mysql
、postgr...
赞
踩
article
Sqoop
快速入门【导入
数据
到
HDFS
与
导出
数据
到
数据
库
】_ tmp
sqoop
-
hadoop
co...
下面的语法用于将
数据
导入
HDFS
让我们举一个名为emp,emp_add和emp_contact的三个表的示例,这些表位于...
赞
踩
article
【
Hadoop
】--基于
hadoop
和
hive
实现
聊天
数据
统计
分析
,构建
聊天
数据
分析报表[17]_基...
BI:Business Intelligence,商业智能。指用现代
数据
仓库技术、线上分析处理技术、
数据
挖掘和
数据
展现技...
赞
踩
article
Hadoop
+
Spark
大
数据
技术
(测试)...
在下面的单元格中编写Scala程序,输出上三角形的九九乘法表,并运行。
Hadoop
+
Spark
大
数据
技术
(测试) ...
赞
踩
article
Hive
基于
Hadoop
进行
数据
清洗
及
数据
统计_
hdfs
+
hive
做
数据
统计...
收集
数据
到
Hadoop
hdfs
使用ETL(MapReduce)进行
数据
清洗
(更新元
数据
target)
Hive
关联外...
赞
踩
article
大
数据
技术原理与应用
第三版
林子雨 期末复习(二)
Hadoop
HDFS
HBase
_
大
数据
技术...
大
数据
技术原理与应用
第三版
林子雨 期末复习(二)
Hadoop
HDFS
HBase
_
大
数据
技术
第三版
大
数据
技术第三...
赞
踩
article
【大
数据
·
Hadoop
】从
词频
统计
由浅入深介绍
MapReduce
分布式计算
的设计思想和原理_hado...
MapReduce
的算法核心思想是:分治学过算法的同学应该会学到分治算法,所谓分治,就是把原问题分解为规模更小的问题,进...
赞
踩
article
Hadoop
高可用集群完全分布式安装教程一篇就够用(
zookeeper
、
spark
、
hbase
、m...
Hadoop
高可用集群完全分布式安装教程(
zookeeper
、
spark
、
hbase
、
mysql
、
hive
)_hado...
赞
踩
article
Hadoop
运行
环境
搭建
(开发重点)
_
建立
hadoop
运行
环境
...
Hadoop
运行
环境
搭建
_
建立
hadoop
运行
环境
建立
hadoop
运行
环境
...
赞
踩
相关标签
hadoop
开源
架构
云计算
分布式
spark
big data
大数据
Hadoop部署
Spark部署
windows
读取mysql
spark-submit
sql
代码分析
string
interface
存储
数据结构
hdfs
yarn