YARN成员介绍
YARN工作流程
1. YARN成员介绍
YARN:Yet Another Resource Negotiator;
Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的;
核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现
- ResourceManager:负责整个集群的资源管理和调度
- ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等
YARN的引入,使得多个计算框架可运行在一个集群中
- 每个应用程序对应一个ApplicationMaster
- 目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等
YARN:解耦资源与计算
ResourceManager
- 主,核心
- 集群节点资源管理
NodeManager
- 与RM汇报资源
- 管理Container生命周期
- 计算框架中的角色都以Container表示
Container:【节点NM,CPU,MEM,I/O大小,启动命令】
- 默认NodeManager启动线程监控Container大小,超出申请资源额度,kill
- 支持Linux内核的Cgroup
MR :
MR-ApplicationMaster-Container
- 作业为单位,避免单点故障,负载到不同的节点
- 创建Task需要和RM申请资源(Container /MR 1024MB)
Task-Container
Client:
- RM-Client:请求资源创建AM
- AM-Client:与AM交互
2. YARN成员介绍
MR2.0.png- 客户端向yarn提交作业,yarn会启动ApplicationsManager,让它来管理作业
RM会为作业分配对应的NM并且通信,开启作业的ApplicationMaster - ApplicationMaster会向ApplicationsManager注册,这样用户可以在页面上实时查看任务进度等信息
- ApplicationMaster轮询的通过RPC向ResourceScheduler申请资源
在ApplicationMaster领取到资源后,会与对应的NM通信要求开启Task - NM为任务设置好运行环境后,将任务的启动命令写到一个脚本中,并通过该脚本启动并运行任务
- 各个Task通过RPC向ApplicationMaster汇报,以让application master随时掌握各个任务的运行状态,从而在任务失败时,重启启动任务
- 作业结束后,ApplicationMaster向ApplicationsManager注销并关闭自己
网友评论