MRv2最基本的设计思想是将JobTracker的两个主要功能,即资源管理和作业调度/监控分成两个独立的进程。在该解决方案中包含两个组件:全局的ResourceManager(RM)和与每个应用相关的ApplicationMaster(AM)。
RM是系统中将资源分配给各个应用的最终决策者。
RM有两个组件组成:
调度器(Scheduler)
应用管理器(ApplicationsManager,ASM)
Scheduler调度器根据容量,队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用。这里的 调度器是一个“纯 调度器”,因为它不再负责监控或者跟踪应用的执行状态等,此外,他也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务。ASM主要负责接收作业,协商获取第一个容器用于执行AM和提供重启失败AM container的服务。
ApplicationMaster
AppMstr或AM主要负责同调度器协商以获取合适的容器,并跟踪这些容器的状态和监控其进度。它结合从 ResourceManager 获得的资源和 NodeManager 协同工作 来运行和监控任务。
NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。
Container 容器中封装了机器资源,如内存,CPU, 磁盘,网络等,每个任务会被分配一个容器,该任务只能在该容器中执行,并使用该容器封装的资源。