分布式资源管理与任务调度框架 Yarn

一、YARN简介

1、YARN是什么

        一种新的Hadoop资源管理器,一个通用资源管理系统

        为上层提供统一的资源管理与任务调度及监控,提高了集群管理效率、资源使用率、资源共享效率。

2、产生背景

        Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个TaskTracker,我们称之为MRv1。

        Master:是整个集群唯一的管理者,功能包括:作业管理、状态监控和任务调度等,也就是MapReduce中的JobTracker。

        Slave:负责任务的执行和任务状态的汇报,也就是MapReduce中的TaskTracker。

        MRv1包括三个部分:运行时环境(JobTracker和TaskTracker)、编程模型(MapReduce)和数据处理引擎(Map任务和Reduce任务)。

        JobTracker主要功能:

                1.资源管理,协调平衡集群中的计算节点,合理分配。

                2.任务调度,一个作业对应多个任务,负责任务调度、状态监控、容错管理等。

        TaskTracker主要功能:

                1.执行任务,响应JobTracker命令,如启动、停止任务等。

                2.汇报心跳:汇报节点健康状态、资源使用情况等。汇报任务执行进度、人物进行状态                                         等。

        MRv1存在的主要问题:

                扩展性受限、单点故障、难以支持MR以外的计算框架。多计算框架各自为战,数据共享困难,资源利用率低。这些原因催生了Yarn的产生。

3、Yarn的特点

        1、资源管理与计算框架解耦设计,一个集群资源共享给上层各个计算框架,按需分配,大幅度提高资源利用率

        2、运维成本显著下降,只需运维一个集群,同时运行满足多种业务需求的计算框架

        3、集群内数据共享一致,数据不再需要集群间拷贝转移,达到共享互用

        4、避免单点故障、集群资源扩展得到合理解决

4、Yarn应用

        需要统一的资源管理和任务调度的平台均可使用,已成为大数据集群的必备组件之一。

二、Yarn架构设计

1、基本组成

        YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave。YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。

2、详细介绍

        1、Client:面向用户提交的Dirver代码,作为用户编程接口,与ResourceManager交互。

        2、ResourceManager:整个集群只有一个是存活的(active),负责集群资源的统一管理和调度。

        3、NodeManager:整个集群有多个,负责单节点资源管理和使用。

        4、ApplicationMaster:每个应用程序特有,负责应用资源的管理。

        5、Container:对任务运行环境的抽象。

3、运行流程

3.1运行流程图

3.2流程详解

        1) 用户向 YARN 中提交命令

        2) ResourceManager 为作业分配第一个 Container,并与对应的 NodeManager 通信,要求它在这个 Container 中启动该作业的 ApplicationMaster。

        3) ApplicationMaster 向 ResourceManager注册,用户可以通过ApplicationMaster查看任务,如资源一次未分配到位,会先使用已分配的资源做相应任务,剩余未分配的任务会持续申请资源。

        4) 一旦 ApplicationMaster 申请到资源后,便与对应的 NodeManager 通信,要求它启动任务。

        5) NodeManager 执行 ApplicationMaster 发送的命令,启动 Container 任务。

        6) 各 个 Container 通 过 RPC 向 ApplicationMaster 汇报自己的状态和进度,在任务失败时重新启动任务。

        7) 作业完成后,ApplicationMaster 向 ResourceManager 申请注销并关闭自己。

三、Yarn调度策略

1、MRv1策略:

        集中式调度器,资源调度和应用程序的管理功能集中到单一进程完成,扩展性差。

2、Yarn双层骨架策略:

        2.1 将传统的集中式调度器一分为二,即资源调度器(ResourceManager)和应用程序调度器 (ApplicationMaster)。

        2.2 ResourceManager 即简化了的集中式资源调度器,具体作业的资源调度和管理由应用程序调 度器 ApplicationMaster 负责。

3、常用调度策略

3.3.1FIFO Schedule(先进先出)
        把用户提交的作业排成队列,使用先进先出的原则,缺点是可能会有比较大的作业占用资源过多,导致队列堵塞

3.3.2Capacity Schedule(容器调度器)
        多用户共享集群,每个用户或者组织分配了专门的队列.不支持抢占模式.缺点是可能会造成资源浪费

3.3.3Fair Schedule(公平调度器)
        所有用户分配公平的资源,支持抢占.可以划分多队列.但是缺点是可能会出现任务被中途杀死的情况

四、yarn shell应用


        yarn常用命令:yarn version  查看版本信息

                              yarn jar  提交jar包

                              yarn classpath  获取运行时的classpath

                              yarn application -list 查看所有正在运行的application列表

                              yarn application -kill +id 杀死对应的application

                              yarn top  查看yarn当前资源使用情况 

五、容错性


        1.基于Zookeeper实现HA,避免单点故障

        2.AM挂掉以后,RM会重启AM,已经完成的Task不会重新运行.

        3.若任务失败,会由AM进行决定处理,若包含AM,则RM会重启AM

        4.Task Failure会通过心跳机制将信息告诉AM,若超时或失败,AM会重新恢复Task

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值