YARN

YARN分布式资源管理 任务调度/监控系统, 由ResourceManager、NodeManager组成。

image.png

ResourceManager

包含Scheduler和ApplicationsManager

1. Scheduler:
  • 负责将资源分配给运行的 application,Scheduler是纯粹的调度程序,因为它不执行对应用程序状态的监视或跟踪。此外,它也不能保证由于应用程序故障或硬件故障而重新启动失败的任务。
  • Scheduler根据应用程序的资源需求执行调度功能。它基于一个抽象的资源容器的概念,它包含了诸如内存、cpu、磁盘、网络等元素。
  • Scheduler有一个可插入的策略,负责在不同的队列、应用程序等之间划分集群资源。例如CapacityScheduler(容量调度器)和FairScheduler(公平调度器)。

CapacityScheduler 默认调度策略
将集群划分出来多个队列,每个队列可以占用的资源不同,每个队列可设定一定比例的资源最低保证和使用上限,并支持资源共享,将队列剩余资源共享给其他队列使用。容量保证 弹性调度 多租户管理 安全隔离
CapacityScheduler中的资源抢占
【队列间的抢占】
在多个队列之间进行资源的抢占,保证每个队列的最小资源(队列的capacity配置)得以满足。
【队列内的抢占】
一种是按任务的优先级来,即高优先级的任务处于待分配状态后,将从低优先级任务抢占资源;另一种是按用户资源来划分,即队列内多个用户提交的任务,从占用资源最多的那个用户进行抢占,其本质上是保证每个用户的资源使用趋于平等。

2. ApplicationsManager
  • ApplicationsManager负责接受作业提交,与第一个容器协商执行application的ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。

NodeManager

NodeManager 是 ResourceManager 在每台机器的上代理,负责容器的管理,并监控他们的资源使用情况(cpu,内存,磁盘及网络等),以及向 ResourceManager/Scheduler 提供这些资源使用报告。
nodeManager负责节点上面的containers的启动和管理, containers执行ApplicationMaster指定的task。

ApplicationMaster

ApplicationMaster 负责与 Scheduler 协商合适的 Container,跟踪应用程序的状态,以及监控它们的进度,ApplicationMaster 是协调集群中应用程序执行的进程。每个应用程序都有自己的 ApplicationMaster,负责与 ResourceManager 协商资源(container)和 NodeManager 协同工作来执行和监控任务 。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • YarnYarn产生背景:Yarn直接来自于MR1.0MR1.0 问题:采用的是master slave结构,ma...
    时待吾阅读 5,976评论 2 23
  • YARN是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeMana...
    神呐_宽恕我把阅读 287评论 0 0
  • 一、概念 1.1 什么是调度器 理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限...
    CJ21阅读 1,587评论 0 2
  • Apache Hadoop Yarn简介 Yarn的基本理念是将资源管理与任务调度分离到不同的守护进程中去。基于这...
    anvoid阅读 588评论 0 0
  • 前言: 上节课我们讲了 MR job的提交YARN的工作流程 与 YARN的架构,本次课程详细讲讲YARN,多多总...
    ly稻草阅读 4,873评论 0 5