yarn将hadoop2.x中的mrv.1的JobTracker和TaskTracker分成了一个全局的资源管理器ResourceManager和每个程序所特有的ApplicationMaster
ResourceManager负责整个集群的资源管理和分配,而ApplicationMaster则负责单个程序的管理
yarn基本组成结构
yarn使用master/slave结构,resourceManager是master,而NodeManager是salve,而RM负责对NM上的资源进行管理和分配,也就是当用户提交一个应用程序的时候,需要提供一个跟踪和管理这个程序的ApplicationMaster,它负责向RM申请资源,
RM的构成
1.调度器(schedule):根据容量和队列等限制条件,将系统中的资源分配到各个正在运行的应用程序,它仅根据资源需求进行资源的分配
2.应用程序管理器(Applications Manager):负责管理整个集群中的所有应用程序,包括任务的提交,与调度器协调资源,启动applicationMaster,监控applicationMaster的运行状态并在失败时重新启动它
ApplicationMaster
用户的每个程序包含一个AM;主要功能
1.与RM的调度器协调以获取资源
2.将得到的任务进一步分配给内部的任务;
3.与namenode通信以启动和中止服务
4.监控所有任务的状态,当失败时重启服务,
NodeManager
NM是每个节点上的资源和任务管理器,作用:
1.定时向RM汇报本节点上的资源使用情况和各个container(包含了运行一个任务的cpu,内存等资源)的运行状态:
2.接受并处理来自AM的container的启动和停止请求
Container
Container是yarn中的资源抽象,当AM向Rm申请资源时,RM为AM返回的资源就使用Container表示,而yarn为每个任务分配一个Container,且该任务只能使用Container中描述的资源,