李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
01.Yarn基础架构
Leefs
2021-09-09 PM
1561℃
0条
# 01.Yarn基础架构 ### 一、Yarn概述 #### 1.1 Yarn介绍 Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是Hadoop2引入的资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在资源利用率、资源统一管理和数据共享等方面带来了好处。 #### 1.2 Yarn产生背景 + Hadoop集群JobTracker单点故障问题 + JobTracker承受的访问压力大,影响系统扩展性 + 不支持MapReduce之外的计算框架,如:Storm、Spark、Flink #### 1.3 Yarn优点 + 支持非MapReduce应用以外的计算框架 + 可扩展性 + 提高资源利用率 + 用户敏捷性 + 可以搭建为高可用 ### 二、Yarn架构 Yarn从整体上还是属于master/slave模型,主要依赖于三个组件来实现功能: + **ResourceManager**:是集群资源的仲裁者,它包括两部分:一个是可插拔式的调度Scheduler,一个是ApplicationManager,用于管理集群中的用户作业。 + **NodeManager**:管理该节点上的用户作业和工作流,也会不断发送自己Container使用情况给ResourceManager。 + **ApplicationMaster**:用户作业生命周期的管理者它的主要功能就是向ResourceManager(全局的)申请计算资源(Containers)并且和NodeManager交互来执行和监控具体的task。 ![01.Yarn基础架构.jpeg](https://lilinchao.com/usr/uploads/2021/09/1572547441.jpeg) #### 组件功能详解 + **ResourceManager (RM)** ResourceManager 是一个全局的资源管理器,负责整个集群的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager)。 + **Scheduler(调度器)** 该调度器是一个 "纯调度器",不再参与任何与具体应用程序逻辑相关的工作,而仅根据各个应用程序的资源需求进行分配,资源分配的单位用一个资源抽象概念 "Container" 来表示。 Container 封装了内存和 CPU。此外,调度器是一个可插拔的组件,用户可根据自己的需求设计新的调度器。 在Hadoop的MapReduce框架中主要有三种Scheduler:`FIFO Scheduler`,`Capacity Scheduler`和`Fair Scheduler`。 **FIFO Scheduler:**先进先出,不考虑作业优先级和范围,适合低负载集群。 **Capacity Scheduler:**将资源分为多个队列,允许共享集群,有保证每个队列最小资源的使用。 **Fair Scheduler:**公平的将资源分给应用的方式,使得所有应用在平均情况下随着时间得到相同的资源份额。 + **ApplicationManager(应用程序管理器)** 负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它等。 + **ApplicationMaster (AM)** ApplicationMaster 管理在YARN内运行的每个应用程序实例。每个应用程序对应一个ApplicationMaster。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配),通俗讲是管理发起的任务,随着任务创建而创建,任务的完成而结束。 + **NodeManager (NM)** NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。 **主要职责:** + 接收ResourceManager的请求,分配Container给应用的某个任务 + 和ResourceManager交换信息以确保整个集群平稳运行。ResourceManager就是通过收集每个NodeManager的报告信息来追踪整个集群健康状态的,而NodeManager负责监控自身的健康状态。 + 管理每个Container的生命周期 + 管理每个节点上的日志 + 执行Yarn上面应用的一些额外的服务,比如MapReduce的shuffle过程 + **Container** Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。 YARN会为每个任务分配一个Container,且该任务只能用该Container中描述的资源。 要使用一个YARN 集群,首先需要来自包含一个应用程序的客户请求。 ResourceManager协商一个容器的必要资源,启动一个ApplicationMaster来表示已经提交的应用程序。通过使用一个资源请求协议, ApplicationMaster协商每个节点上供应程序使用的资源容器。执行应用程序时,ApplicationMaster监视容器,直到完成。当应用程序完成时,ApplicationMaster从ResourceManager注销其容器,执行周期就完成了 *参考文章链接* *https://blog.csdn.net/scgaliguodong123_/article/details/46603827* *https://www.panziye.com/bigdata/1948.html*
标签:
Hadoop
,
Yarn
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1413.html
上一篇
07.SpringBoot集成Quartz实现分布式任务调度
下一篇
02.Yarn的工作机制和作业提交过程
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
栈
Java编程思想
Spring
机器学习
Scala
ClickHouse
持有对象
并发线程
随笔
Zookeeper
递归
Docker
Elasticsearch
数据结构
人工智能
设计模式
哈希表
锁
排序
gorm
Java
FastDFS
SpringCloud
FileBeat
数据结构和算法
pytorch
链表
ajax
JavaWeb
GET和POST
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭