赞
踩
一:简介
Yarn是hadoop的资源管理调度平台(集群)------为用户程序提供运算资源的管理和调度。
用户程序:如用户开发的一个Mapreduce程序。
Yarn有两类节点(服务进程):
1、resourcemanager 主节点master------只需要1个来工作
2、nodemanager 从节点------根据集群规模可以有很多个
二:Yarn产生的原因
(1)MapreduceV1中,jobtracker存在瓶颈:
a、集群上运行的所有mr程序都有jobtracker来调度
b、SPOF单点故障
c、职责划分不清晰
(1) 将jobtracker的职责划分成两个部分:
资源调度与管理:由统一的资源调度平台(集群)来实现(yarn)
任务监控与管理:
A、每一个application运行时拥有一个自己的任务监控管理进程AppMaster
B、AppMaster的生命周期:application提交给yarn集群之后,yarn负责启动该application的AppMaster,随后任务的执行监控调度等工作都交由AppMaster,待这个application运行完毕后,AppMaster向yarn注销自己。
C、AppMaster的具体实现由application所使用的分布式运算框架自己负责,比如Mapreduce类型的application有MrAppMaster实现类。Spark DAG应用则有SparkOnYarn的SparkContext实现
三:Yarn的架构
(1)ResourceManager ----> master node,可配多个RM实现HA机制,
由两个核心组件构成:
Scheduler 和ApplicationsManager;
Scheduler:负责资源调度,调度策略可插拔(内置实现 CapacityScheduler/ FairScheduler),不提供对application运行的监控;
ApplicationsManager:负责响应任务提交请求,协商applicationMaster运行的container,重启失败的applicationMaster
(2)NodeManager ----> slave nodes,每台机器上一个
职责:加载containers,监控各container的资源使用情况,并向Resourcemanager/Scheduler汇报
(3)ApplicationMaster ---->特定运算框架自己实现,接口为统一的AppMaster
职责:向Scheduler请求适当的资源,跟踪任务的执行,监控任务执行进度、状态等
四:Yarn运行application的流程
五:总结
1、Yarn只响应job的提交及为job的运行分配资源,yarn不参与job的具体运行机制和流程。
2、Mapreduce程序中有一个进程叫MrAppmaster来负责程序的具体运行流程控制。
3、由于Yarn不参与用户程序的具体运行,所以Yarn可以为各种类型的应用程序提供资源服务。(Yarn就类似于一个操作系统平台,可以运行各种各样的运算框架所开发的程序;Mapreduce、storm、spark......)
4、因为yarn的这种平台特性,延长了hadoop的生命周期。
6、因为yarn可以整合各种运算框架,企业就可以把各种分布式框架整合到hadoop集群。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。