type
status
date
slug
summary
tags
category
icon
password

YARN架构概述

它由Container、ResourceManger、NodeManager、ApplicationMaster几个主要部分组成。
notion image
  1. Container(容器)
YARN中的资源包括内存、CPU、磁盘输入/输出等。Contianer是YARN中的资源抽象,它封装了某个节点上的多维资源。YARN会为每个任务分配Container。
  1. ResourceManager(资源管理器)
ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器,主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationManager)。调度器根据资源情况为应用程序分配封装在Container中的资源。应用程序管理器负责管理整个系统中的所有应用程序。
  1. NodeManager(节点管理器)
NodeManager是每个节点上的资源和任务管理器。它定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态,接受并处理来自ApplicationManager的Container启动/停止等请求。
  1. ApplicationMaster(主应用)
ApplicationMaster是一个详细的框架库,它结合从ResourceManger获得的资源与NodeManager协同工作,来运行和监控任务
用户提交的每一个应用程序均包含一个ApplicationMaster。其主要功能包括以下三点:
(1) 与ResourceManager调度器协商以获取抽象资源(Contianer)。
(2) 负责应用的监控,跟踪应用执行状态,重启失败任务等。
(3) 与NodeManager协同工作完成任务的执行和监控。
 

YARN中应用运行的机制

YARN中应用运行的机制如图
notion image
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获取状态,从而获取集群的进度情况
notion image
SELECT的执行过程Ambari部署Hadoop集群
Loading...
DewarTsang
DewarTsang
一个普通的干饭人🍚
最新发布
白U兑换黑U
2024-12-18
BNB-ETH
2024-11-26
Django的生命周期
2024-8-14
RESTful API 设计规范
2024-7-15
什么是猴子补丁?
2024-7-15
多线程与GIL
2024-7-12