2025-09-20
Hadoop
00
请注意,本文编写于 94 天前,最后修改于 94 天前,其中某些信息可能已经过时。

目录

YARN架构概述
YARN中应用运行的机制
YARN中任务进度的监控

YARN架构概述

它由Container、ResourceManger、NodeManager、ApplicationMaster几个主要部分组成。

  1. Container(容器)

    YARN中的资源包括内存、CPU、磁盘输入/输出等。Contianer是YARN中的资源抽象,它封装了某个节点上的多维资源。YARN会为每个任务分配Container。

  2. ResourceManager(资源管理器)

    ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器,主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationManager)。调度器根据资源情况为应用程序分配封装在Container中的资源。应用程序管理器负责管理整个系统中的所有应用程序。

  3. NodeManager(节点管理器)

    NodeManager是每个节点上的资源和任务管理器。它定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态,接受并处理来自ApplicationManager的Container启动/停止等请求。

  4. ApplicationMaster(主应用)

    ApplicationMaster是一个详细的框架库,它结合从ResourceManger获得的资源与NodeManager协同工作,来运行和监控任务

    用户提交的每一个应用程序均包含一个ApplicationMaster。其主要功能包括以下三点:

    (1) 与ResourceManager调度器协商以获取抽象资源(Contianer)。

    (2) 负责应用的监控,跟踪应用执行状态,重启失败任务等。

    (3) 与NodeManager协同工作完成任务的执行和监控。

YARN中应用运行的机制

YARN中应用运行的机制如图

Untitled

  1. Client向ResourceManager提交YARN Application。
  2. ResouceManager初始化(Start)Container。
  3. 在NodeManager的协助下启动启动(launch)Container。若是首次启动,Container里面包含ApplicationMaster。
  4. ApplicationMaster计算资源够不够?如果够,则自己处理。
  5. 如果资源不够,ApplicationMaster向ResouceManager申请资源。
  6. ApplicationMaster拿到资源后,开始启动Container。
  7. 在NodeManager的协助下,启动Container,Application运行。

YARN中任务进度的监控

ApplicationMaster将收集的进度和状态进行统计,汇聚成作业视图。客户端可以从ApplicationMaster获取状态,从而获取集群的进度情况

Untitled

本文作者:Dewar

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!