YARN框架示意图如下:
1、 ResourceManager
为系统中所有应用分配资源。
有一个可插拔的调度器Scheduler,负责为运行中的各种应用分配资源,使用一个叫Container的抽象概念,其中包括多种资源维度,如CPU、内存、磁盘、网络。
Scheduler中有三种调度器
FIFO调度器:简单粗暴,先入先出
Capacity调度器:管理员使用总槽位或者处理器容量预设多个队列,保证每个队列的最小资源量。当不需要最小容量时,可以提供给饥饿队列。每个队列内使用层次化的FIFO调度多个应用程序。由ACL(访问控制列表)控制用户可以向哪些队列提交作业
Fair调度器:资源公平分配给所有应用,使得所有应用在平均时间下得到相等的份额。每个应用都属于某一个队列。Container每次分配都选择使用了最少资源队列中使用最少资源的应用程序。Fair调度器支持层次化队列