【云小课】EI第38课 MRS基础原理之YARN组件介绍

举报
Hi,EI 发表于 2021/12/09 11:02:25 2021/12/09
【摘要】 为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶颈,Hadoop社区引入了统一的资源管理框架YARN。YARN是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。在原生的YA...

为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶颈,Hadoop社区引入了统一的资源管理框架YARN

YARN是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManagerRM)和若干个针对应用程序的ApplicationMasterAM)。

在原生的YARN资源调度机制中,如果先提交的MapReduce Job长时间地占据整个Hadoop集群的资源,会使得后提交的Job一直处于等待状态,直到Running中的Job执行完并释放资源。

MRS集群提供了任务优先级调度机制。此机制允许用户定义不同优先级的Job,后启动的高优先级Job能够获取运行中的低优先级Job释放的资源;低优先级Job未启动的计算容器被挂起,直到高优先级Job完成并释放资源后,才被继续启动。

image008.jpg

YARN结构

YARN分层结构的本质是ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager将各个资源部分(计算、内存、带宽等)精心安排给基础NodeManagerYARN的每节点代理)。ResourceManager还与Application Master一起分配资源,与NodeManager一起启动和监视它们的基础应用程序。

Application Master管理一个在YARN内运行的应用程序的每个实例。Application Master负责协调来自ResourceManager的资源,并通过NodeManager监视容器的执行和资源使用(CPU、内存等的资源分配)。

NodeManager管理一个YARN集群中的每个节点。NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1通过插槽管理Map和Reduce任务的执行,而NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。

image010.png


名称

描述

Client

YARN Application客户端,用户可以通过客户端向ResourceManager提交任务,查询Application运行状态等。

ResourceManager(RM)

负责集群中所有资源的统一管理和分配。接收来自各个节点(NodeManager)的资源汇报信息,并根据收集的资源按照一定的策略分配给各个应用程序。

NodeManager(NM)

NodeManagerNM)是YARN中每个节点上的代理,管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。

ApplicationMaster(AM)

即图中的App Mstr,负责一个Application生命周期内的所有工作。包括:与RM调度器协商以获取资源;将得到的资源进一步分配给内部任务(资源的二次分配);与NM通信以启动/停止任务;监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

Container

ContainerYARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等(目前仅封装内存和CPU),当AMRM申请资源时,RMAM返回的资源便是用Container表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

YARN中,资源调度器是以层级队列方式组织资源的,这种组织方式有利于资源在不同队列间分配和共享,进而提高集群资源利用率。如下图所示,Superior SchedulerCapacity Scheduler的核心资源分配模型相同。

调度器会维护队列的信息。用户可以向一个或者多个队列提交应用。每次NM心跳的时候,调度器会根据一定规则选择一个队列,再选择队列上的一个应用,并尝试在这个应用上分配资源。若因参数限制导致分配失败,将选择下一个应用。选择一个应用后,调度器会处理此应用的资源申请。其优先级从高到低依次为:本地资源的申请、同机架的申请,任意机器的申请。

image012.png

YARN原理

新的Hadoop MapReduce框架被命名为MRv2YARNYARN主要包括ResourceManagerApplicationMasterNodeManager三个部分。

ResourceManager

  • RM是一个全局的资源管理器,负责整个系统的资源管理和分配。主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager)。调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位用一个抽象概念Container表示。Container是一个动态资源分配单位,将内存、CPU、磁盘、网络等资源封装在一起,从而限定每个任务使用的资源量。此外,该调度器是一个可插拔的组件,用户可根据自己的需要设计新的调度器,YARN提供了多种直接可用的调度器,比如Fair SchedulerCapacity Scheduler等。
  • 应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等。

NodeManager

NM是每个节点上的资源和任务管理器,一方面,会定时向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,接收并处理来自AMContainer启动/停止等请求。

ApplicationMaster

AM负责一个Application生命周期内的所有工作。包括:

  • RM调度器协商以获取资源。
  • 将得到的资源进一步分配给内部的任务(资源的二次分配)
  • NM通信以启动/停止任务。
  • 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

Yarn作业提交示例

MRS集群的创建您可参考创建集群

Yarn客户端的安装您可以参考安装客户端

  1. 以客户端安装用户,登录安装客户端的节点。执行以下命令,切换到客户端安装目录。
    cd /opt/Bigdata/client
    source bigdata_env
  2. 若集群开启了Kerberos认证,需提前准备具有Kafka操作权限的用户并进行认证。
    kinit 组件业务用户
  3. 提交一个Yarn任务:
    yarn jar HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 100 10
  4. 登录集群FusionInsight Manager主页界面,单击进入“Yarn”,打开“ResourceManager(主机名,主)”,可以进入Yarn WebUI页面。

    image014.png

  5. 切换为作业执行用户,可查看当前作业的运行详情及资源占用情况。

    image016.png

    image018.png

  6. YARN作业运行完成。
    ...
            Peak Reduce Physical memory (bytes)=242061312
            Peak Reduce Virtual memory (bytes)=5654482944
        Shuffle Errors
            BAD_ID=0
            CONNECTION=0
            IO_ERROR=0
            WRONG_LENGTH=0
            WRONG_MAP=0
            WRONG_REDUCE=0
        File Input Format Counters 
            Bytes Read=11800
        File Output Format Counters 
            Bytes Written=97
    Job Finished in 115.117 seconds
    Estimated value of Pi is 3.14800000000000000000

关于YARN租户及提交作业过程中的调度介绍,请参考《MRS 多租户介绍》

image020.png

好了,本期云小课就介绍到这里,快去体验MapReduce(MRS)更多功能吧!猛戳这里

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。