一、Yarn的基础架构
Yarn主要由ResourceManager、NodeManager、Application、Container等组件构成
ResourceManager:处理客户端请求,监控NodeManager、启动或监控ApplicationMaster、资源的分配与调度
NodeManager:管理单个节点的资源,处理ResourceManager的命令
ApplicationMaster:为程序申请资源分配给内部任务、任务的监控与容错
Container:Container是Yarn中的资源抽象,封装了某个节点的多维度资源
二、Yarn的工作机制
(1)mr程序提交到客户端
(2)由客户端像ResourceManager申请一个Application
(3)由ResourceManager返回给客户端一个资源提交路径
(4)等资源提交完成,由客户端向ResourceManger申请运行mrAppMaster
(5)ResourceManger会将用户的请求初始化成一个Task
(6)NodeManager领取到Task任务后,NodeManager创建容器Container
(7)Container下载资源到本地
(8)申请运行MapTask容器,NodeManager领取到任务创建容器
(9)向ResourceManager申请2个容器运行ReduceTask程序,向map端获取相对应的分区数据。
三、Yarn调度器
FIFO:单队列,根据提交作业的先后顺序,先来先服务。
容量(Capacity Scheduler):
公平(Fair Scheduler):