集群成员代理
yarnrunner
localjobrunner
Job提交流程
Job源码详解
waitForCompletion()submit();// 1建立连接connect();// 1)创建提交Job的代理new Cluster(getConfiguration());//(1)判断是本地yarn还是远程initialize(jobTrackAddr, conf);// 2 提交jobsubmitter.submitJobInternal(Job.this, cluster)// 1)创建给集群提交数据的Stag路径Path jobStagingArea = JobSubmissionFiles.getStagingDir(cluster, conf);// 2)获取jobid ,并创建Job路径JobID jobId = submitClient.getNewJobID();// 3)拷贝jar包到集群(本地不提交)copyAndConfigureFiles(job, submitJobDir);rUploader.uploadFiles(job, jobSubmitDir);// 4)计算切片,生成切片规划文件writeSplits(job, submitJobDir);maps = writeNewSplits(job, jobSubmitDir);input.getSplits(job);// 5)向Stag路径写XML配置文件writeConf(conf, submitJobFile);conf.writeXml(out);// 6)提交Job,返回提交状态status = submitClient.submitJob(jobId, submitJobDir.toString(), job.getCredentials());
