目录
简介
Hadoop2.x引入了一个新的组件:YARN ,它作为hadoop集群中的资源管理模块,为各类计算框架提供资源的管理和调度。负责管理集群中的资源:CPU,内存,磁盘,网络IO等等(v3.1.1版本之后新增了对GPU资源的管理)以及调度运行在YARN之上的各种计算任务。
基础架构
与HDFS中的NameNode和DataNode类似,YARN也是主从结构的,主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。
- ResourceManager:负责处理客户端请求,对各个NM上的资源进行统一管理和调度。给ApplicationMaster分配空闲的Container 运行并监控其运行状态。主要由两个组件构成:调度器和应用程序管理器。
- 调度器(Scheduler):调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,资源分配单位是Container。Scheduler不负责监控或者跟踪应用程序的状态。总之,调度器根据应用程序的资源要求,以及集群机器的资源情况,为应用程序分配封装在Container中的资源。
- 应用程序管理器(Applications Manager):应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster 、监控ApplicationMaster运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。
- NodeManager:是每个节点上的资源和任务管理器。它会定时地向ResourceManager汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自ApplicationMaster 的Container 启动/停止等请求。
- ApplicationMaster:用户提交的每个应用程序都包含一个ApplicationMaster ,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。
- Container:是YARN中的资源抽象&#