Yarn中MapReduce任务提交步骤

本文详细阐述了从JobSubmitter的内部实现出发,通过RPC方法进入YARN Runner,最终在ResourceManager中完成提交并获取应用ID的过程。重点介绍了在本地设置job参数、计算输入split信息及客户端与ResourceManager之间的交互细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Submit ApplicationStage

  1. job.waitForCompletion 
  1. Job.submit()
    1. final JobSubmitter submitter =getJobSubmitter(cluster.getFileSystem(), cluster.getClient());
    2. submitter.submitJobInternal(Job.this, cluster);
  1. JobSubmitter.submitJobInternal() 在本地设置好job的一些参数,取到job token等信息,通过inputformat计算输入的split(map)信息
  1. ClientProtocolsubmitJob RPC方法进入到YARNRunner
  2. Construct necessary information to start the MR AM
  3. Submit to ResourceManager
  4. Get the ApplicationId of the submitted application.
  5. YarnClientImplappConect取一个ApplicationId,封装为一个SubmitApplicationRequestrmClient进行提交,并等待提交后该application状态。
  6. ApplicationClientProtocol rmClient.submitApplication(request);

计算机生成了可选文字: App二滤OtProto《OB如二king丰n块d白ceAppl盼t沁nClientProtocoIPBApp.叱习t沁n〔lientProtocoIPBClienUmpl仁卜entRNSe可ke△词l乓一节{Appl仰t沁nC卜entProtocolPBSery瓦elmpl

RM中协议实现

进入yarn.server.resourcemanager包  ClientRMService

  1. 安全用户校验
  2. ApplicationId校验
  3. 取出request中的queue,ApplicationName,ApplicationType等信息,由rmAppManager -> submit

RMAppManager中根据请求信息创建RMAppImpl实例

  1. SubmitApplicationResponse response = recordFactory.newRecordInstance(SubmitApplicationResponse.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值