概述
Hadoop YARN是一个资源调度框架。
YARN的基本思想是将资源管理和作业调度/监控的功能分解为单独的守护进程。
原理简介
YARN拥有一个全局的ResourceManager(RM),每个节点有一个NodeManager(NM)以及每个应用程序有一个ApplicationMaster(AM)。
ResourceManager和NodeManager构成了数据计算框架。ResourceManager拥有系统中所有应用程序之间仲裁资源的最终权限,也就是说,应用程序所需要的资源是由ResourceManager分配的。NodeManager是每台机器的框架代理,负责容器,监控其资源使用情况(CPU,内存,磁盘,网络)并将其报告给ResourceManager/Scheduler。
每个应用程序的ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监控任务。
ResourceManager
ResourceManager有两个主要组件:Scheduler和ApplicationsManager。
Scheduler负责分配资源给正在运行的应用程序。Scheduler是纯调度程序,因为它不执行应用程序状态的监控或跟踪。
ApplicationsManager负责接收作业提交,协商第一个容器以执行特定于应用程序的ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。每个应用程序的ApplicationMaster负责从Scheduler协商适当的资源容器,跟踪其状态并监控进度。