李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
01.Yarn基础架构
Leefs
2021-09-09 PM
972℃
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
标签云
ClickHouse
Thymeleaf
Typora
Beego
序列化和反序列化
SpringCloud
Nacos
国产数据库改造
持有对象
FileBeat
SpringCloudAlibaba
Stream流
Flink
Elasticsearch
JavaWEB项目搭建
并发线程
Python
Redis
Sentinel
MySQL
Java工具类
Jenkins
Azkaban
LeetCode刷题
Elastisearch
排序
字符串
Quartz
Http
Kafka
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞