zoukankan      html  css  js  c++  java
  • YARN应用场景、原理与资源调度

    1.Hadoop YARN产生背景

      源于MapReduce1.0

      运维成本 如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需要少数管理员即可完成多个框架的统一管理。

      数据共享 随着数据量的暴增,跨集群间的数据移动不仅需花费更长的时间,且硬件成本也会大大增加,而共享集群模式可让多种框架共享数据和硬件资源,将大大减小数据移动带来的成本。

      直接源于MRv1在几个方面的缺陷:

                    扩展性受限
                    单点故障
                    难以支持MR之外的计算

      多计算框架各自为战,数据共享困难

                    MR:离线计算框架

                      Storm:实时计算框架

                                                    Spark:内存计算框架

    2.Hadoop YARN基本构成

    ResourceManager

    整个集群只有一个,负责集群资源的统一管理和调度
    详细功能
    处理客户端请求
    启动/监控ApplicationMaster
    监控NodeManager
    资源分配与调度

    NodeManager

    整个集群有多个,负责单节点资源管理和使用
    详细功能
    单个节点上的资源管理和任务管理
    处理来自ResourceManager的命令
    处理来自ApplicationMaster的命令

    ApplicationMaster

    每个应用有一个,负责应用程序的管理
    详细功能
    数据切分
    为应用程序申请资源,并进一步分配给内部任务
    任务监控与容错


    Container

    对任务运行环境的抽象
    描述一系列信息
    任务运行资源(节点、内存、CPU)
    任务启动命令
    任务运行环境

    3.YARN容错性

    ResourceManager
    存在单点故障;
    正在基于ZooKeeper实现HA。
    NodeManager
    失败后,RM将失败任务告诉对应的AM;
    AM决定如何处理失败的任务。
    ApplicationMaster
    失败后,由RM负责重启;
    AM需处理内部任务的容错问题;
    RMAppMaster会保存已经运行完成的Task,重启后无需重新运行

    4.YARN调度框架

    双层调度框架
    RM将资源分配给AM
    AM将资源进一步分配给各个Task
    基于资源预留的调度策略
    资源不够时,会为Task预留,直到资源充足
    与“all or nothing”策略不同(Apache Mesos)

    5.Hadoop YARN资源调度 

    YARN资源调度器

    多类型资源调度
    采用DRF算法(论文:“Dominant Resource Fairness: Fair Allocation of Multiple Resource Types”)
    目前支持CPU和内存两种资源
    提供多种资源调度器
    FIFO
    Fair Scheduler
    Capacity Scheduler
    多租户资源调度器
    支持资源按比例分配
    支持层级队列划分方式
    支持资源抢占

    YARN资源隔离方案

    支持内存和CPU两种资源隔离
    内存是一种“决定生死”的资源
    CPU是一种“影响快慢”的资源
    内存隔离
    基于线程监控的方案
    基于Cgroups的方案
    CPU隔离
    默认不对CPU资源进行隔离
    基于Cgroups的方案

    YARN支持的调度语义

    支持的语义
    请求某个特定节点/机架上的特定资源量
    将某些节点加入(或移除)黑名单,不再为自己分配这些节点上的资源
    请求归还某些资源
    不支持的语义
    请求任意节点/机架上的特定资源量
    请求一组或几组符合某种特质的资源
    超细粒度资源
    动态调整Container资源

    6.Hadoop YARN上的计算框架

    离线计算框架:MapReduce
    DAG计算框架:Tez
    流式计算框架:Storm
    内存计算框架:Spark

  • 相关阅读:
    JavaScript知识回顾
    HTML和CSS相关知识回顾
    springmvc文件上传和下载
    jsp页面调试中的问题记录
    mybatis传参的几种方式
    ssm中调试遇到的坑
    idea新手日记
    Oracle安装
    mysql5安装
    Servlet 的原理----无脑笔记
  • 原文地址:https://www.cnblogs.com/tmeily/p/4427711.html
Copyright © 2011-2022 走看看