Hadoop-Yarn

一、概述
1. 产生原因:
a. 内因:Hadoop1.0中,JobTracker既要负责任务调度和监控还要负责集群的资源管理,任务比较多,就导致任务量增多的时候效率成倍下降甚至崩溃、
b. 外因:随着Hadoop以及分布式的发展,产生了越来越多的计算框架,这些框架之间的资源分配容易产生冲突,所以需要提供一套统一的资源分配的框架
2. YARN - Yet Another Resource Negotiator— 迄今另一个资源调度器
3. Yarn负责资源管理和任务调度
a. ResourceManager:资源管理
b. ApplicationMaster:任务管理
c. NodeManager:执行任务

二、Job的执行流程
1. 客户端将Job提交给ResourceManager
2. ResourceManager在收到Job任务之后会等待NodeManager的心跳
3. 在ResourceManager收到NodeManager的心跳之后会将Job交给这个NodeManager,同时在这个NodeManager上开启一个ApplicationMaster,将Job分配给这个ApplicationMaster - 在Yarn中,每一个Job任务会对应一个单独的ApplicationMaster
4. ApplicationMaster收到Job之后会对这个Job进行划分,划分好之后会向ResourceManager请求执行资源。请求的资源数量要考虑副本数量。例如,如果一个任务划分成5个MapTask以及2个ReduceTask,那么默认情况下在申请资源的时候会申请17份资源,但是注意ResourceManager会只返回7份资源
5. ResourceManager收到请求之后会将资源封装成Container对象发送给ApplicationMaster
6. ApplicationMaster收到Container之后会对资源进行二次分配,分配给具体的子任务
7. ApplicationMaster会将子任务分发给NodeManager执行,并且会监控这些任务的执行情况。每一个ApplicationMaster只监控自己的任务,不监控其他的ApplicationMaster的任务
8. 当子任务执行失败的时候,这个子任务所占用的资源也会被释放。ApplicationMaster在监控到这个任务失败的时候会试图重启这个子任务,在重启之前,ApplicationMaster会向ResourceManager重新为这个子任务来申请资源
9. 注意:
a. 在Yarn体系结构中,ResourceManager管理ApplicationMaster,ApplicationMaster管理子任务
b. 默认情况下,每份资源中包含1G内存一个1个CPU核,即允许每一个子任务占用1G内存以及1个CPU核
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值