Yarn 资源调度框架

Yarn 资源调度框架
    实现对资源的细粒度封装(cpu,内存,带宽)
    此外,还可以通过yarn协调多种不同计算框架(MR,Spark)
    概述
        Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在资源利用率、资源统一管理和数据共享等方面带来了巨大好处。
    核心思想
        a. 一个全局的资源管理器 ResourceManager
        b.ResourceManager的每个节点代理 NodeManager
        c. 表示每个应用的 ApplicationMaster
        d. 每一个ApplicationMaster拥有多个Container在NodeManager上运行
    架构
        RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。
        调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念“资源容器”(Resource Container,简称Container)表示,
        ApplicationMaster(AM)
            用户提交的每个应用程序均包含一个AM,主要功能包括:
            与RM调度器协商以获取资源(用Container表示);
            将得到的任务进一步分配给内部的任务(资源的二次分配);
            与NM通信以启动/停止任务;
            监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
        NodeManager(NM)
            NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。
        Container
            Container是YARN中的资源抽象,它封装了某个节点上的内存、CPU资源,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。
    uber模式
        开启这种模式可以让JVM重用。据Arun的说法,启用该功能能够让一些任务的执行效率提高2到3倍(“we've observed 2x-3x speedup for some jobs”)
    小文件处理方法
        处理方式一:开启Hadoop的JVM重用机制,避免海量小文件(海量的map任务)带来的JVM频繁启停。
        处理方式二:将多个小文件合成一个文件或合成少量文件,这样可以减少map的任务数量

posted @ 2019-03-19 12:25  Striver。  阅读(288)  评论(0编辑  收藏  举报