五、Yarn

来源:互联网 发布:手机模拟打碟机软件 编辑:程序博客网 时间:2024/04/30 16:49

一:简介

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


2NodeManager ----> slave nodes,每台机器上一个

职责:加载containers,监控各container的资源使用情况,并向Resourcemanager/Scheduler汇报


3ApplicationMaster ---->特定运算框架自己实现,接口为统一的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集群。

0 0
原创粉丝点击