YARN 的任务提交流程

当JobClient向YARN提交一个应用程序后,YARN将分两个阶段运行这个应用程序:一是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,监控运行直到结束。
具体步骤如下:

1、用户向YARN提交一个应用程序,并指定ApplicationMaster程序、启动ApplicationMaster的命令、用户程序。
2、 RM为这个应用程序分配第一个Container,并与之对应的NM通讯,要求它在这个Container中启动应用程序ApplicationMaster。
3、 ApplicationMaster向RM注册,然后拆分为内部各个子任务,为各个内部任务申请资源,并监控这些任务的运行,直到结束。
4、 AM采用轮询的方式向RM申请和领取资源。
5、 RM为AM分配资源,以Container形式返回
6、 AM申请到资源后,便与之对应的NM通讯,要求NM启动任务。
7、 NodeManager为任务设置好运行环境,将任务启动命令写到一个脚本中,并通过运行这个脚本启动任务
8、 各个任务向AM汇报自己的状态和进度,以便当任务失败时可以重启任务。
9、应用程序完成后,ApplicationMaster向ResourceManager注销并关闭自己

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系统关闭不再需要的资源,作业结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值