YARN概述

YARN是Apache Hadoop 2.x引入的一种分布式资源调度框架,全称为Yet Another Resource Negotiator,意为另一种资源协调器。它的设计目标是为了满足大规模集群上的数据处理需求,并提供了更高的可伸缩性、可靠性和灵活性。

YARN架构

YARN的架构由ResourceManager和NodeManager组成。ResourceManager是集群的全局资源管理器,负责整体的资源分配和调度;NodeManager负责在每个节点上的资源管理和任务协调。下面是YARN的主要组件:

  • ResourceManager(RM):全局资源管理器,负责协调整个集群的资源分配和调度。
  • NodeManager(NM):每个节点上的资源和任务管理器,负责与ResourceManager通信、执行任务、监控资源使用情况等。
  • ApplicationMaster(AM):每个应用程序实例都有一个ApplicationMaster,负责向ResourceManager申请资源、协调和监控任务执行。
  • Container:资源的抽象表示,每个任务都运行在一个Container里,它包含了任务运行所需的资源。

YARN工作流程

YARN的工作流程可分为以下几个步骤:

  1. 客户端向ResourceManager提交应用程序,包括应用程序的描述和资源需求。
  2. ResourceManager接收到应用程序请求后,为该应用程序启动一个ApplicationMaster,它负责管理应用程序的运行。
  3. ApplicationMaster向ResourceManager申请资源,包括内存、CPU等,ResourceManager根据集群资源情况进行分配。
  4. ResourceManager将资源分配结果发送给NodeManager,每个NodeManager都会监控自身的资源使用情况。
  5. NodeManager获取到资源后,在Container中启动任务。
  6. 任务在Container中运行并通过ApplicationMaster向NodeManager汇报状态和进度。
  7. 当任务完成后,ApplicationMaster释放资源并向ResourceManager注销自己。

通过以上流程,YARN实现了资源的弹性分配和任务的动态调度,提高了集群的利用率和资源的利用效率。


本文由轻山版权所有,禁止未经同意的情况下转发