满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述Hadoop 入门笔记—核心组件 YARN相关的知识,希望能为你提供帮助。
基本概述
Apache YARN (Yet Another Resource Negotiator) 是 Hadoop 中的资源管理和作业调度系统, 在 Hadoop 2.x 时才被引入。
用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。
文章图片
核心架构
【Hadoop 入门笔记—核心组件 YARN】Yarn 的主要架构分为四个部分:ResourceManager、NodeManager、ApplicationMaster、Container
ResourceManager
ResourceManager
通常在独立的部署在一台机器作为应用运行,集群中只有一个,负责整个系统的资源管理和分配。ResourceManager
主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。能够根据应用程序优先级、队列容量、数据位置等信息,做出决策,通过安全的、共享的、多租户的方式制定分配策略,调度集群资源。
NodeManager
是 YARN 集群中的每个具体节点的管理者。主要负责该节点内所有容器的生命周期的管理,监视资源和跟踪节点健康。NodeManager
主要用来处理来自ResourceManager
、ApplicationMaster
的命令。
- 在用户提交一个应用程序时,YARN 会启动一个轻量级的进程
ApplicationMaster
。 ApplicationMaster
负责协调来自ResourceManager
的资源,并通过NodeManager
监视容器内资源的使用情况,同时还负责任务的监控与容错。
Container
是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。- 当
ApplicationMaster
向ResourceManager
申请资源时,ResourceManager
为ApplicationMaster
返回的资源是用Container
表示的。 - YARN 会为每个任务分配一个
Container
,该任务只能使用该Container
中描述的资源。 ApplicationMaster
可在Container
内运行任何类型的任务。
YARN 应用提交的整个工作流程:
- 首先客户端提交任务到 YARN 上,
ResourceManager
提交应用并请求一个ApplicationMaster
实例; ResourceManager
会选择一个可运行的NodeManager
,并在Container
中启动并运行ApplicationMaster
实例;- 启动中的
ApplicationMaster
向ResourceManager
注册自己,启动成功后与RM保持心跳。 ApplicationMaster
向ResourceManager
发送请求,获取需要的Container
资源;ApplicationMaster
通过获取到的Container
资源执行分布式计算。- 应用运行结束后,
ApplicationMaster
向ResourceManager
注销自己,并允许属于它的container
被收回。
Yarn 主要在 Hadoop 体系中负责服务资源的调度分配,能够最大限度的利用机器资源,高效调配,达到资源利用的最大化。
推荐阅读
- 携程一面(分布式配置系统Apollo如何实时更新配置的?)
- git基础命令大全
- #yyds干货盘点#马拉车算法解最长回文子串!Manacher
- SpringCloud升级之路2020.0.x版-40. spock 单元测试封装的 WebClie
- #yyds干货盘点#Galang中的map数据类型使用
- #yyds干货盘点# web安全day10(通过实验理解windows域的OU和GPO)
- 并发高(可能是编译优化引发有序性问题)
- 打印日历和当前时间(简单易懂)
- #yyds干货盘点#3. 无转折不编程,滚雪球学 Python