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 实现了资源的弹性分配和任务的动态调度,提高了集群的利用率和资源的利用效率。


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