type
status
date
slug
summary
tags
category
icon
password
YARN架构概述
它由Container、ResourceManger、NodeManager、ApplicationMaster几个主要部分组成。
- Container(容器)
YARN中的资源包括内存、CPU、磁盘输入/输出等。Contianer是YARN中的资源抽象,它封装了某个节点上的多维资源。YARN会为每个任务分配Container。
- ResourceManager(资源管理器)
ResourceManager负责整个系统的资源分配和管理,是一个全局的资源管理器,主要由两个组件构成:调度器(Scheduler)和应用程序管理器(ApplicationManager)。调度器根据资源情况为应用程序分配封装在Container中的资源。应用程序管理器负责管理整个系统中的所有应用程序。
- NodeManager(节点管理器)
NodeManager是每个节点上的资源和任务管理器。它定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态,接受并处理来自ApplicationManager的Container启动/停止等请求。
- ApplicationMaster(主应用)
ApplicationMaster是一个详细的框架库,它结合从ResourceManger获得的资源与NodeManager协同工作,来运行和监控任务
用户提交的每一个应用程序均包含一个ApplicationMaster。其主要功能包括以下三点:
(1) 与ResourceManager调度器协商以获取抽象资源(Contianer)。
(2) 负责应用的监控,跟踪应用执行状态,重启失败任务等。
(3) 与NodeManager协同工作完成任务的执行和监控。
YARN中应用运行的机制
YARN中应用运行的机制如图
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获取状态,从而获取集群的进度情况
- 作者:DewarTsang
- 链接:https://funtalk.top/article/59485c42-bfb2-4cc4-94d9-17fe5c8796ae
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章