yarn入门入门——yarn的架构及作业调度的架构及作业调度
1、yarn产生背景
mapReduce存在问题:
JobTracker单点故障
JobTracker承受的访问压力大,影响系统扩展
不支持MapReduce之外的计算框架,比如Storm,spark,flink
2、yarn的核心思想
是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,YARN的基本思想是将JobTracker的两个主要功能(资源管理
和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的
ApplicationMaster(AM)。
它由下面几大构成组件:
ResourceManager:负责为集群中的所有应用程序分配资源
每个节点代理 的NodeManager
每个应用对应一个ApplicationMaster
一个ApplicationMaster拥有多个Container,Containner在NodeManager上运行
运行在独立节点上的RM和NM一起组成了YARN的核心且构成了这个平台。AM和相应的Container一起组成了一个Yarn的应用
程序。从YARN的角度来看,所有用户通过提交应用程序,然后利用该平台提供的资源来进行交互。从最终用户的角度看,他
们可能是直接在YARN平台上通过运用应用程序和YARN进行交互。
3、工作机制概述
Client向RM提交应用程序,应用程序提交到RM后,AM注册到RM上,RM计算所需资源并向RM提出申请,RM返给AM资源信
息,AM向NM发起启动container的请求,container启动后,NM将启动成功和启动失败的container列表发送给AM,由AM重新
向RM申请资源,期间AM和NM定期的向RM发送心跳。
4、组件简介
4.1、ResourceManager(RM)
RM作为一个独立的守护进程运行在专有机器上,RM拥有集群上所有资源的信息,是集群所有资源的仲裁者,只负责给应用
进行资源的划分和资源的收回。这里的资源主要指:内存,带宽,内核数等。
4.2、ApplicationMaster(AM)
ApplicationMaster管理一个在YARN内运行的应用程序的每个实例,每个应用程序对应唯一一个AM。 负责管理作业的生命周
期,包括动态的增加和减少资源使用,管理作业执行流程,处理故障和计算偏差,以及执行其本地优化。
4.3、NodeManager(NM)
管理集群中独立的计算节点。
NM是每个节点上的资源和任务管理器。一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container运行状态;
另一方面,它接收并处理来自AM的 Container 启动/停止等各种请求。