YARN的基本思想是将资源管理和作业调度/监视的功能分解为单独的守护进程。应用程序可以是单个作业,也可以是作业的DAG。ResourceManager和NodeManager构成了数据计算框架。
ResourceManager(RM):
1)处理来自客户端的请求
2)监控NodeManager
3) 启动或监控ApplicationMaster
4) 资源的分配与调度
ResourceManager有两个主要组件:Scheduler和ApplicationsManager。
1.Scheduler:调度程序,负责将资源分配给各种正在运行的应用程序
2.ApplicationsManager:(1)负责数据切分(2)为应用程序申请资源,并分配给内部的任务。(3)负责从调度程序协商适当的资源容器,跟踪其状态并监视进度
NodeManager(NM):
1)管理单个节点的资源
2)处理来自ResourceManager的命令
3) 处理来自ApplicationMaster的命令
Container
是YARN中的资源抽象,封装了某个节点的多维度资源,如:内存、CPU、磁盘、网络等。