YARN——Hadoop的资源管理系统

简介: YARN——Hadoop的资源管理系统

一、YARN是如何产生的

1.在Hadoop1.x中,mapreduce在集群中的架构是:1个Job Tracker(负责资源管理和作业调度)带多个Task Tracker(定期向Job Tracker汇报本节点的健康状况、资源使用情况、任务执行情况以及接收来自Job Tracker的命令并执行)。


Hadoop1.x存在的问题:

单点故障:由于Job Tracker只有一个,如果它挂了,集群就没法使用了。

Job Tracker会接收来自各个Task Tracker节点的RPC请求,随着节点规模增大,Job Tracker压力会很大。

而这系列版本的Hadoop仅支持mapreduce计算框架,不支持其他类型的计算框架。

2.从资源利用率的角度来看,在没有yarn之前,集群之间是独立的,例如Hadoop是一个集群,spark(计算框架)是一个集群,而Hbase又是一个集群,这样的情况就造成集群管理起来很复杂,而各个集群独立使得资源不能共享导致集群间资源浪费。


解决的思路:将所有的计算框架运行在一个集群中,共享一个集群的资源,按需分配。哪个集群需要资源就将资源分配给哪个集群,这样的集群资源利用率就高于多个独立集群的资源利用率。


3.从数据共享角度来看,海量数据在集群间移动不但耗时,硬件成本也会增加。共享集群模式可以让多种框架共享数据(HDFS上的数据)、共享硬件资源,大大减少了移动数据带来的成本(即移动计算要比移动数据好,将作业任务分配到数据所在节点上去运行,减少数据网络传输的开销)。

二、YARN(Yet Another Reource Negotiator,另一资源协调者)

一个通用的资源管理系统,为上层应用提供统一的资源管理和调度。解决了集群资源利用率、数据共享、资源统一管理等方面的问题,yarn取代了Job Tracker的角色。


YARN架构(采用Master/Slave结构——主从设备模式)

20200617123557795.jpg

组成:

Client:向Resource Manager提交任务、终止任务

Resource Manager(RM):

集群只有一个RM,一个RM对应多个NM;


处理客户端的请求(启动/终止应用程序);


启动/监控AM,若AM挂掉,RM会在另一NM节点上启动AM;


监控NM,接收NM汇报的心跳信息并分配任务给NM执行;一旦某个NM故障,标记下该NM上的任务,告诉对应的AM如何处理。


Node Manager(NM):

集群中有多个NM,负责单个节点资源管理和使用;


周期性地通过心跳信息向RM汇报本节点上资源使用情况和各个Container的运行状态;


接收并处理来自RM的Container启动/停止的各种命令 。


Application Master(AM):

对应每一个应用程序,负责应用程序的管理;


AM向RM申请资源用在NM上启动相应的任务;


为应用程序/作业向RM申请资源(Container),并分配给内部任务;


与NM通信,以启动/停止任务;


任务监控和容错,在任务执行失败时重新为该任务申请资源以重启任务;


处理RM 发过来的命令(终止Container、让NM重启)。


Container(任务运行环境的抽象):任务是在Container中运行的,一个Container既可以运行AM,也可以运行具体的Map、Reduce、MPI、SparkTask。

Mapreduce作业启动时产生Map任务——Map Task

MPI框架对应的执行任务——MPI Task

三、YARN的架构设计

yarn的工作原理

20200617123557795.jpg

用户向yarn提交应用程序/作业,包括AM程序,及启动AM程序的命令和用户程序;


RM为作业分配第一个Container,并与对应的NM通信,要求它在这个Container中启动该作业的AM;


AM首先向RM注册,这样用户就可以直接通过RM查询作业的运行状态;然后再为各个任务申请资源并监控任务的运行状态,直到运行结束(AM采用轮询的方式通过RPC请求向RM申请资源);


AM一旦申请到资源,便与对应的NM通信,要求它启动任务;


NM启动任务;


各个任务通过RPC协议向AM汇报自己的状态和进度,以便AM随时掌握各个任务的运行状态,从而在任务失败时重新启动任务;


作业在运行过程中,用户可随时通过RPC向AM查询作业当前的运行状态;


作业完成后,AM向RM注销并关闭自己。


yarn的容错性

RM可基于Zookeeper实现HA(高可用),避免单点故障;

NM执行失败后,RM将失败任务告诉对应的AM,由AM决定如何处理失败任务;

AM执行失败后,由RM负责重启(AM需处理内部任务的容错问题,保存已经运行完成的Task,重启后不用再运行).

相关文章
|
17小时前
|
分布式计算 资源调度 Hadoop
Hadoop调度和资源管理
【7月更文挑战第14天】
5 2
|
21天前
|
资源调度 Windows
Windows系统yarn : 无法加载文件
Windows系统yarn : 无法加载文件
18 0
|
25天前
|
存储 SQL 分布式计算
Hadoop 生态系统
【6月更文挑战第20天】Hadoop 生态系统
37 3
|
26天前
|
资源调度 分布式计算 Hadoop
YARN如何实现资源管理?
【6月更文挑战第19天】YARN如何实现资源管理?
28 13
|
1月前
|
资源调度 分布式计算 Hadoop
实时计算 Flink版产品使用问题之yarn session模式中启动的任务链接是http IP,想把IP映射为主机hadoop,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
存储 分布式计算 Hadoop
Hadoop生态系统详解:HDFS与MapReduce编程
Apache Hadoop是大数据处理的关键,其核心包括HDFS(分布式文件系统)和MapReduce(并行计算框架)。HDFS为大数据存储提供高容错性和高吞吐量,采用主从结构,通过数据复制保证可靠性。MapReduce将任务分解为Map和Reduce阶段,适合大规模数据集的处理。通过代码示例展示了如何使用MapReduce实现Word Count功能。HDFS和MapReduce的结合,加上YARN的资源管理,构成处理和分析大数据的强大力量。了解和掌握这些基础对于有效管理大数据至关重要。【6月更文挑战第12天】
48 0
|
1月前
|
分布式计算 Hadoop 分布式数据库
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
82 2
|
1月前
|
分布式计算 Hadoop 数据挖掘
Hadoop生态系统介绍(一)
Hadoop生态系统介绍(一)
56 4
|
2月前
|
资源调度 分布式计算 Hadoop
Hadoop Yarn 核心调优参数
这是一个关于测试集群环境的配置说明,包括3台服务器(master, slave1, slave2)运行CentOS 7.5,每台有4核CPU和4GB内存。集群使用Hadoop 3.1.3,JDK1.8。Yarn核心配置涉及调度器选择、ResourceManager线程数、节点检测、逻辑处理器使用、核心转换乘数、NodeManager内存和CPU设置,以及容器的内存和CPU限制。配置完成后,需要重启Hadoop并检查yarn配置。
|
2月前
|
SQL 分布式计算 资源调度
Hadoop Yarn 配置多队列的容量调度器
配置Hadoop多队列容量调度器,编辑`capacity-scheduler.xml`,新增`hive`队列,`default`队列占总内存40%,最大60%;`hive`队列占60%,最大80%。配置包括队列容量、用户权限和应用生存时间等,配置后使用`yarn rmadmin -refreshQueues`刷新队列,无需重启集群。多队列配置可在Yarn WEB界面查看。