--总体概述
--yarn总体上是Master/slaves结构,整个架构中,resourcemanager(RM)是主节点,nodemanager(NM)是从节点,RM对NM上的资源进行统一管理和调度;当用户提交一个应用程序后,需要提供一个跟踪,管理这个程序的applicationMaster(AM),AM负责像RM申请资源,并要求NM启动可以占用一定资源的任务,不停的AM分配到不同的节点,它们相互之间不受影响
--主要结构
--RM 负责整个系统的资源分配,主要由两个组件构成:调度器(Scheduler),应用程序管理器Aplications Master(ASM)
--调度器
调度器只是单纯的调度,不参与任何具体的计算失误,也不负责跟踪程序的运行状态,运行失败的时候,也不负责程序的kill,重启等,这些都交由AM负责.调度器根据各个程序的需求进行资源分配,资源单位用一个抽象的概念container,它是一个资源单位,如内存,网络,cpu等,从而限定程序对资源的使用量.调度器是一个插拔式的单位,用户可以根据自己的需求设计新的调度器,yarn提供了几种现成的调度器,如Fair Scheduler,capacity Scheduler.
--应用程序管理器(Applications Master)(ASM)
负责系统中所有应用程序,提交程序、写生资源,以启动AM,监控AM的运行状态,其失败时,重启它
--NM
每个节点上的任务和资源管理器,功能包括,定时向RM回报本节点上的内存,硬盘,CPU等资源的使用情况,以及各个container的运行状态,还有接收并处理来自AM的container启动或停止等各种请求
--ApplicationMaster(AM)
用户提交的每个程序,都包含一个AM,主要的功能用途:
与RM进行ROC通讯,以获取资源(contatiner)
与NM进行RPC通信,对任务进程停止或启动
其次,AM有多种实现,用户也可以自定义
--container
是yarn中的,对资源的抽象,包括CPU,内存等(主要针对CPU,内存,是否在新版本中增加资源项还未研究,但是个人觉得增加的可能性不大)
编者注:转载请注明出处,欢迎加入大数据技术交流群,群号:481116275