Yarn学习

本文深入探讨YARN(Yet Another Resource Negotiator),它是Hadoop 2.x中的核心特性,旨在解决Hadoop 1.x中的资源管理和调度问题。YARN由ResourceManager、NodeManager和ApplicationMaster组成,提供了一个统一的资源管理和调度平台。文章详细介绍了YARN的结构、任务调度流程、资源调度器(FIFO, Capacity, Fair)以及完全分布式结构的扩展,包括新节点的添加和联邦HDFS的概念。" 89309960,5695979,Kettle数据整合实战:从入门到Hello World,"['数据仓库', 'ETL工具', 'Kettle转换', '数据处理']
摘要由CSDN通过智能技术生成

一.概述
1.YARN(Yet Another Resource Negotiator - 迄今另一个资源调度器) - 负责任务管理和资源调度
2.YARN是Hadoop2.X开始出现的,也是Hadoop2.X中最重要的特性之一。也正是因为YARN的出现,导致Hadoop1.X和Hadoop2.X不兼容
3.产生原因
a.内部原因
①在Hadoop1.X中,没有Yarn的说法,此时MapReduce分为主进程JobTracker和从进程TaskTracker。JobTracker只允许存在1个,容易出现单点故障
②JobTracker负责对外接收任务,接收任务之后需要将任务拆分成子任务(MapTask和ReduceTask)。JobTracker拆分完任务之后,将子任务分配给进程TaskTracker。JobTracker会监控每一个TaskTracker的执行情况。在官方文档中,每一个JobTracker最多能够管理4000个TaskTracker。如果TaskTracker数量过多,导致JobTracker的效率成倍下降,甚至导致JobTracker的崩溃
b.外部原因
①在Hadoop产生的时候,市面上并没有太多的大数据框架,因此Hadoop在刚开 始涉及的时候,只考虑MapReduce的资源调度问题
②后来随着大数据的发展,产生了越来越多的计算框架,很大一部分的框架都是围绕Hadoop使用,因为Hadoop没有考虑其他框架的资源冲突

4.YARN的结构
a.主进程ResourceManager
①负责对外接受请求
②负责管理NodeManager
③负责管理ApplicationMaster
b.从进程NodeManager
①执行任务
②负责管理本节点上的资源
c.辅助进程ApplicationMaster:负责管理具体的子任务

二.流程
1.当ResourceManager收到客户端提交的任务之后,会先将这个任务临时存储下来,等待NodeManager的心跳
2.当ResourceManager收到NodeManager的心跳之后,会在心跳响应中将Job任务返回给NodeManager
3.NodeManager通过心跳响应之后,收到任务之后,就会在本节点内部开启一个ApplicationMaster进程,然后将Job任务交给这个ApplicationMaster处理
4.Applicationmaster收到任务之后,会将Job任务来进行拆分,拆分成子任务。例如,如果是一个MapReduce程序,那么拆分成MapTask和ReduceTask
5.拆分完成之后,ApplicationMaster会给ResourceManager发送请求申请资源
6.ResourceManager收到请求之后,将请求交给内部组件ResourceScheduler处理
7.ResourceScheduler收到请求之后,会将资源的描述封装成一个Container对象返回给ApplicationMaster
8.ApplicationMaster收到资源之后,会对资源进行二次拆分,分配给具体的子任务,然后将子任务分配到不同的NodeManager上执行,并且ApplicationMaster还会监控这些子任务执行
9.如果子任务执行失败,那么ApplicationMaster监控到之后,会自动的重启这个失败的子任务,或者会自动的将失败的子任务分配到其他的节点上重新执行
10.当Job任务结束之后,ApplicationMaster会ResourceManager发送请求,请求注销自己
在这里插入图片描述

三.ResourceScheduler - 资源调度器
1.在Hadoop中,目前为止,支持3种资源调度器:FIFO(先进先出),Capacity(资源容量)以及Fair(公平)
2.FIFO(先进先出)
a.在Hadoop2.X中,默认使用是这个资源调度器,但是Hadoop3.X发生变化
b.底层会为维系唯一的队列,任务会先进入队列,然后从队列头获取任务,为这个任务分配资源。如果资源不充分的情况下,后入队的任务就会被阻塞
3.Capacity(资源容量)
a.在Hadoop3.X中,默认使用的是这个资源调度器
b.这个资源调度器中,可以维系多个队列,每一个队列维系FIFO的规则。默认情况下,这个调度器中只有1个队列default(此时和FIFO一样)
c.如果资源调度器中维系了多个队列,那么可以为每一个队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值