Yarn 提交作业流程
时间: 2024-10-12 21:09:32 浏览: 12
YARN (Yet Another Resource Negotiator) 是Hadoop生态系统中的资源管理系统,它负责管理和调度集群中的计算资源。在YARN上提交作业通常包括以下几个步骤:
1. **创建应用程序 masters(ApplicationMaster)**: 当你在YARN客户端(如`yarn-client`)上运行一个MapReduce任务或其他分布式应用时,它首先会启动一个`ApplicationMaster`进程。这个进程代表你的应用程序,并负责管理整个作业。
2. **提交申请(Submit Application)**: 向ResourceManager(RM)提交作业描述文件(例如XML或JSON格式),包含作业的基本信息、资源配置需求等。你可以通过命令行工具或者API来提交。
```shell
$ yarn submit your-application.jar
```
3. **资源分配(Resource Allocation)**: RM接收到作业提交后,会评估集群资源情况并分配适当数量的Container给`ApplicationMaster`。Container是YARN最小的可执行单元,包含了运行用户程序所需的环境。
4. **`ApplicationMaster`与NodeManager通信**: `ApplicationMaster`与每个NodeManager(NM)建立连接,告诉它们如何在节点上启动和监控Containers。 NM负责实际的容器管理和任务调度。
5. **Container启动与任务执行**: Container在指定的节点上启动,并按照`ApplicationMaster`的指示执行用户的程序或任务。
6. **任务进度更新和监控**: `ApplicationMaster`定期与NM交互获取任务状态更新,直到所有任务完成或者失败。
7. **结果收集与作业结束**: 一旦所有任务完成或遇到错误,`ApplicationMaster`报告最终状态,YARN系统关闭不再需要的资源,作业结束。
阅读全文