ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hadoop入门(15):YARN

2022-07-09 16:00:11  阅读:142  来源: 互联网

标签:15 Mstr App hadoop 应用程序 调度 YARN RM


YARN

YARN官方文档

YARN的介绍

    YARN是一个通用资源管理系统调度平台

    资源管理系统:集群的硬件资源,和程序运行相关,比如内存、CPU等

    调度平台:多个程序同时申请计算,资源如何分配,调度的规则/算法。



YARN的架构

YARN架构

上图中我们可以清晰的看到YRAN的三大组件:

  • 集群物理层面: Resource ManagerNode Manager

  • App层面: Application Master(App Mstr)

另外还有:

  • Client客户端
  • Container容器(资源的抽象)

三大组件

  • Resource Manager(RM)

    YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。接收用户的作业提交,并通过N分配、管理各个机器上的计算资源

  • Node Manager(NM)

    YARN集群中的从角色,一台机器上一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RV主角色汇报资源使用情况。

  • Application Master(AM)

    用户提交的每一个应用程序都包含一个AM。应用程序中的管理者,负责程序内部各阶段的资源申请,监督程序的执行情况。


程序提交YARN交互流程

核心交互流程:

交互 流程
MR作业提交 Client -> RM
资源申请 App Mstr -> RM
MR作业状态汇报 Container(Map|Reduce Task) -> Container(App Mstr)
节点状态汇报 NM -> RM

整体概述:

当用户向 YARV 中提交一个应用程序后,YARN将分两个阶段运行该应用程序,

  • 第一个阶段是客户端申请资源启动运行本次程序的ApplicationMaster
  • 第二个阶段是由ApplicationMaster根据本次程序内部且体情况,为它申请资源,并监控它的整个运行过程,直到运行完成。

MR提交YARN交互流程

  1. 用户通过客户端向YARN中的RM提交应用程序
  2. RM为该应用程序分配一个Container容器,并与NM通信,要求其在这个容器中启动这个应用程序的App Mstr
  3. App Mstr启动成功后向RM注册并保持通信,如此用户就可以通过RM查看App的运行状态
  4. App Mstr为本次App内部的各个Task向RM申请资源,并监控运行
  5. 一旦App Mstr申请到资源,就与NM通信要求其启动任务
  6. NM为任务设置好运行环境后,将任务启动命令写入一个脚本中,通过运行该脚本启动任务
  7. 各个任务通过某个 RPC 协议向 App Mstr汇报自己的状态和进度 ,以让 Appl icationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在App运行过程中,用户可随时通过 RPC向 App Mstr查询应用程序的当前运行状态。
  8. 应用程序运行完成后,App Mstr向RM注销并关闭自己。


资源调度器Scheduler

    在理想情况下,应用程序提出的请求将立即得到YARN批准。但是实际中,资源是有限的,并且在繁忙的群集上 ,应用程序通常将需要等待其某些请求得到满足。YARN调度程序的工作是根据一些定义的策略为应用程序分配资源。
    在YARN中,负责给应用分配资源的就是Scheduler,它是ResourceManager的核心组件之一。Scheduler完全专用于调度作业,它无法跟踪应用程序的状态。
    一般而言 ,调度是一个难题,并且没有一个“最佳” 策路,为此,YARN提供了多种调度器和可配置的策路供选择。

三种调度器

YARN调度器

    YARN默认使用容量调度器,需要修改可在yarn-site.xml中的yarn.resourcemanager.scheduler.class中配置

FIFO Scheduler(先进先出调度器)

    完全按照时间,即先提交先运行。调度工作不考虑优先级和范围,适用于负载较低的小规模集群,当使用大规模共享集群时,他的效率低且会导致一些问题。

Capacity Scheduler(容量调度器)

    允许多个组织共享集群资源,每个组织都可以获得集群的一部分计算能力。即通为组织分配专门的队列,然后再为每个队列分配一定的集群资源。

Fair Scheduler(公平调度器)

    是一种公平的共享大型集群中资源的另一种方式,使所有应用在平均的情况下随着时间的流逝可以获得相等的资源份额。公平调度可以在多个队列之间工作,允许资源共享和抢占。

标签:15,Mstr,App,hadoop,应用程序,调度,YARN,RM
来源: https://www.cnblogs.com/S2Jgogo/p/16461049.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有