简介
YARN(Yet Another Resource Negotiator)Hadoop集群资源管理系统。Hadoop2 为了改善MapReduce的实现引入YARN。
YARN 总体上仍然是Master/Slave 结构,在整个资源管理框架中,ResourceManager(RM)为Master,NodeManager(NM)为Slave。
- ResourceManager负责对各个NodeManager上的资源进行统一管理和调度;
- 当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster(主管进程),它负责向ResourceManager 申请资源,并要求NodeManger 启动可以占用一定资源的任务。
- NodeManager负责单节点资源管理和使用
YARN同时支持内存和CPU两种资源的调度。
服务组件
ResourceManager功能
- 处理客户端请求
- 启动/监控ApplicationMaster
- 监控NodeManager
- 资源分配与调度
NodeManager功能
- 单个节点上的资源管理和任务管理
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
- NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源
- 定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态
Container(容器)
YARN中的资源抽象,封装某个节点上多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM向AM返回的资源便是用Container表示的。YARN使用Container作为资源分配最小单位。