Submit ApplicationStage
- job.waitForCompletion
-
Job.submit()
- final JobSubmitter submitter =getJobSubmitter(cluster.getFileSystem(), cluster.getClient());
- submitter.submitJobInternal(Job.this, cluster);
- 在JobSubmitter.submitJobInternal()
在本地设置好job的一些参数,取到job
token等信息,通过inputformat计算输入的split(map)信息
- ClientProtocol的submitJob
RPC方法进入到YARNRunner - Construct necessary information to start the MR AM
- Submit to ResourceManager
- Get the ApplicationId of the submitted application.
- 在YarnClientImpl中appConect取一个ApplicationId,封装为一个SubmitApplicationRequest由rmClient进行提交,并等待提交后该application状态。
- ApplicationClientProtocol
rmClient.submitApplication(request);
RM中协议实现
进入yarn.server.resourcemanager包 ClientRMService
- 安全用户校验
- ApplicationId校验
- 取出request中的queue,ApplicationName,ApplicationType等信息,由rmAppManager
-> submit
在RMAppManager中根据请求信息创建RMAppImpl实例
- SubmitApplicationResponse response = recordFactory.newRecordInstance(SubmitApplicationResponse.class);