我对yarn的理解
Yarn是一种新的hadoop资源调度器。yarn的基本思想是将JobTracker的两个功能(资源管理和作业调度/监控)分离开来,主要的方法是创建一个全局的RM和若干个针对应用程序的AM。(应用程序指的是MR作业或者是作业的DAG)
Yarn的主要构件有:ResourceManager(RM),ApplicationMaster(AM),NodeManger(NM),container。接下来我先介绍一下他们各自的主要功能:
RM:主要负责资源的调度,负责启动和监控AM,在AM运行失败时重启它(RM不负责AM内部任务的容错,这由AM来完成)。RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:Scheduler(调度器)和ApplicationsManager(应用程序管理器,ASM)
Scheduler是一个资源调度器,它主要负责协调集群中各个应用的资源分配,保障整个集群的运行效率。Scheduler的角色是一个纯调度器,它只负责调度Containers,不会关心应用程序监控及其运行状态等信息。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务
另一个组件ApplicationManager主要负责接收job的提交请求,为应用分配第一个Container来运行ApplicationMaster,还有就是负责监控ApplicationMaster,在遇到失败时重启ApplicationMaster运行的Container。
AM:ApplicationMast