Hadoop学习笔记之YARN

YARN产生背景:
单点故障,且节点压力大不易扩展
YARN作为资源调度框架,可以提高资源利用率和降低运维成本,移动运算要比移动数据划算的多

Hadoop学习笔记之YARN

ResourecManager:

1 、整个集群同一时间只有一个,统一提供资源管理和调度
2、 处理客户端请求,提交作业,杀死作业
3、 监控NM的健康状况,向NN发送命令

NodeManager

1 、负责本身节点的的资源管理和使用
2、 定时向RM汇报本节点的资源使用情 况
3 、接收来自RM的各种命令

Container:

. 封装资源的容器

AppMaster
1、每个应用程序对应一个,负责应用程序的管理
2、为应用程序向RM申请资源,分配给内部task
3、与NN通信,启动停止task,task和AppMaster都运行在container里

Client
1、提交作业
2、查看作业的运行进度
3、杀死作业

YARN的执行流程
Hadoop学习笔记之YARN

1 客户端程序向ResourceManager提交应用并请求一个ApplicationMaster实例

2 ResourceManager找到可以运行一个Container的NodeManager,并在这个Container中启动ApplicationMaster实例

3 ApplicationMaster向ResourceManager进行注册,注册之后客户端就可以查询ResourceManager获得自己ApplicationMaster的详细信息,以后就可以和自己的ApplicationMaster直接交互了

4 在平常的操作过程中,ApplicationMaster根据resource-request协议向ResourceManager发送resource-request请求

5 当Container被成功分配之后,ApplicationMaster通过向NodeManager发送container-launch-specification信息来启动Container,
container-launch-specification信息包含了能够让Container和ApplicationMaster交流所需要的资料

6 应用程序的代码在启动的Container中运行,并把运行的进度、状态等信息通过application-specific协议发送给ApplicationMaster

7 在应用程序运行期间,提交应用的客户端主动和ApplicationMaster交流获得应用的运行状态、进度更新等信息,交流的协议也是application-specific协议

8 一但应用程序执行完成并且所有相关工作也已经完成,ApplicationMaster向ResourceManager取消注册然后关闭,用到所有的Container也归还给系统

参考链接:https://blog.csdn.net/suifeng3051/article/details/49486927/