Hadoop YRAN介绍
YARN是一个通用资源管理系统平台和调度平台,可为上层应用提供统一的资源管理和 调度。
他的引入为集群在利用率、资源统一管理和数据共享等方面带来了好处。
1.资源管理系统
集群的硬件资源,和程序运行无关,比如内存、cup
2.调度平台
资源如何分配
3.通用
支持各种计算程序
YARN架构、组件
ResourceManager(物理层面集群)
RM是YARN集群的主角色,决定系统中所有应用之间资源分配的最终权限,即最终仲裁者。
NodeManager
YARN的从角色,一个机器上一个,负责管理本机器上的计算机资源。
AplicationMaster(App层面集群)
用户提交均包含一个AM应用程序的老大,负责程序的内部各阶段的资源申请,监督程序的执行情况
Client
Contairner容器(资源的抽象)
程序提交YARN集群交互流程
MR作业提交 Clinet--->RM
资源的申请MrAppMaster-->RM
MR作业状态汇报Container-->Container
节点的状态汇报 NM--RM、
当用户提交向YARN中提交了一个应用程序之后,YRAN将分为两个阶段该应用程序
第一个阶段客户端申请资源启动运行本次程序的ApplicationMaster
第二个阶段是由ApplicationMaster根据本次程序内部情况,为它申请资源,并监控整个运行过程。直到运行完成
第三阶段ApplicationMaster启动成功之后,首先向ResourceManager注册并保持通信,这样用户通过ResourceManager查看应用程序运行状态
第四阶段AM为本次程序内部的各个TASK任务向RM申请资源,并监控他的运行状态
第五个阶段一旦ApplicationMAster申请到资源后,便与对应的NodeMAster通信,要求启动任务
第六阶段NodeManager为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行改脚本启动任务。
第七个阶段各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度
第八个阶段应用程序 运行完成后,ApplicationMaster向ResourceManager注销并关闭自己
YARN资源调度器
FIFOSchedule(先进先出调度器)Capacity Scheduler(容量调度器)Fair Schedule(公平调度器)
Apache版本默认使用Capacity Schedule调度器
如果需要使用其他的调度器 可以在Yarn--site.xml中的yarn.Resource.Schedule.class 进行配置