阅读量:0
简介
YARN是Hadoop的资源管理和作业调度系统,它将集群资源管理和作业调度/监控功能从Hadoop MapReduce的实现中分离出来,使得Hadoop可以支持除了MapReduce之外的其他数据处理模型。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。
重要组件
Resource Manager (RM):
- 在独立的机器上以后台进程的形式运行。它是整个集群资源的主要协调者和管理者,负责整个集群的资源管理和调度。
- 处理客户端请求,将作业提交到集群,并根据资源情况分配作业到不同的节点上。
Node Manager (NM):
- 运行在集群中的每个节点上,负责管理单个节点的资源。
- 监控节点上的容器使用情况,如内存、CPU等,并将其汇报给ResourceManager。
Application Master (AM):
- 每个作业都会启动一个Application Master,它负责与ResourceManager协商资源,并与NodeManagers通信以启动和监控任务。
- AM还负责作业的生命周期管理,包括任务的调度、监控和状态报告。
Client:
- 客户端应用程序,用于提交作业到YARN集群,并与Application Master交互以获取作业状态和结果。
工作流程
- 作业提交
- 客户端向集群提交作业,RM返回jobId和资源提交路径
- 客户端发送Jar包、配置信息等到指定路径(HDFS上)
- 客户端向RM发送执行作业请求
- RM接受到请求后会创建一个AM来管理该请求
- 作业初始化
- Application manager将job任务添加到资源调度器(Resourse Shecduler,存在于Resourse Manager)中,并且维护在一个队列里
- RM通知Application manager有空闲NM可以执行job
- Application manager调用NM开辟一个Container,并且启动Application Master,然后从指定路径(HDFS上)中获取,生成Task.
- 任务分配
- Application Master向RM申请运行Task的资源
- RM分配Task任务,NM创建一个Container用于执行Task
- 任务运行
- AM通知NM启动计算
- NM启动Task计算
- job执行完毕,AM向RM申请注销
- 作业完成