YARN架构

官网:http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html

1.resource manager

全局的资源管理器,这个集群只有一个,负责集群资源的统一管理和调度分配。

功能

(1)处理客户端请求

(2)启动/监控ApplicationMaster

(3)监控NodeManager

(4)资源分配与调度

2.node manager

整个集群有多个,负责单节点资源管理和使用

功能:

(1)单个节点上的资源管理和任务调度

(2)处理来自Resource Manager的命令

(3)处理来自Application Master的命令

Node Manager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源

定时向Resource Manager汇报本节点上的资源使用情况和各个Container的运行状态。

3.Application Master

管理一个在YARN内运行的一样程序的每个实例

功能:

(1)数据切分

(2)为应用程序申请资源,并进一步分配给内部任务

(3)任务监控与容错

负责协调来自Resource manager的资源,并通过Node Manager监视容器的执行和资源使用(CPU,内存等的资源分配)

4.container

YARN中的资源抽象,封装某个节点上多维度资源,如内存,CPU,磁盘,网络等,当app master向resource manager申请资源时,resource manager向app master返回的资源便是用container表示的

YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源

功能:

(1)对任务运行环境的抽象

(2)描述一系列任务

(3)任务运行资源(节点,内存,cpu)

(4)任务启动命令

(5)任务运行环境

YARN资源管理

1.资源调度和资源隔离是YARN作为一个资源管理系统,最重要和最基础的两个功能。资源调度由resource manager实现,而资源隔离由各个Node manager实现。

2.resource manager将某个Node Manager上资源分配给任务后,Node manager需要按照要求为任务提供相应的资源,甚至保证这些资源硬具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。

3.资源:通常指,内存,CPU,IO三种资源,Hadoop YARN同时支持内存和cpu两种资源的调度。

4.内存资源的多少会决定任务的生死,如内存不够,任务可能会运行失败,想必之后,CPU资源则不填,只决定任务运行的快慢。CPU核数,内存这些配置在yarn-site.xml里面,可以参考官网,覆盖默认配置。

Apache slider

参考博客:http://dongxicheng.org/mapreduce-nextgen/apache-slider-for-yarn/

简单的说,就是把其他框架也运行在yarn上面。

猜你喜欢

转载自blog.csdn.net/qq_33361080/article/details/82593044