1.Yarn资源调度器
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
1.Yarn基础架构
Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。
1.ResourceManager(RM)
ResourceManager(RM)主要作用如下:
- 处理客户端请求
- 监控NodeManager
- 启动或监控ApplicationMaster
- 资源的分配与调度
2.NodeManager(NM)
NodeManager(NM)主要作用如下:
- 管理单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
3.ApplicationMaster(AM)
ApplicationMaster(AM)作用如下:
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
4.Container
Container是Yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
2.Yarn工作机制
- MR程序提交到客户端所在的节点
- YarnRunner向ResourceManager申请一个Application
- RM将该应用程序的资源路径返回给YarnRunner