目录
Yarn 概述
Apache Yarn(Yet Another Resource Negotiator的缩写)是hadoop集群资源管理器系统,Yarn从hadoop 2引入,最初是为了改善MapReduce的实现,但是它具有通用性,同样执行其他分布式计算模式。
Yarn特点
-
支持非mapreduce应用的需求
-
可扩展性
-
提高资源是用率
-
用户敏捷性
-
可以通过搭建为高可用
YARN 架构组件
Yarn从整体上还是属于master/slave模型,主要依赖于三个组件来实现功能。
-
第一个就是
ResourceManager
,是集群资源的仲裁者,它包括两部分:一个是可插拔式的调度Scheduler,一个是ApplicationManager,用于管理集群中的用户作业。 -
第二个是每个节点上的
NodeManager
,管理该节点上的用户作业和工作流,也会不断发送自己Container使用情况给ResourceManager。 -
第三个组件是
ApplicationMaster
,用户作业生命周期的管理者它的主要功能就是向ResourceManager(全局的)申请计算资源(Containers)并且和NodeManager交互来执行和监控具体的task。
架构图如下:
ResourceManager(RM)
RM是一个全局的资源管理器,管理整个集群的计算资源,并将这些资源分配给应用程序。包括:
-
与客户端交互,处理来自客户端的请求
-
启动和管理ApplicationMaster,并在它运行失败时重新启动它
-
管理NodeManager ,接收来自NodeManager 的资源汇报信息,并向NodeManager下达管理指令
-
资源管理与调度,接收来自ApplicationMaster 的资源申请请求,并为之分配资源
RM关键配置参数
最小容器内存:
yarn.scheduler.minimum-allocation-mb
容器内存增量:
yarn.scheduler.increment-allocation-mb
最大容器内存:
yarn.scheduler.maximum-allocation-mb
最小容器虚拟 CPU 内核数量:
yarn.scheduler.minimum