官网: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上面。