job提交流程步骤
waitForCompletion 提交job 任务的入口方法*
if(state == JobState.DEFINE)判断任务是否处于定义状态
submit();
ensureState(JobState.DEFINE); //再次确认任务状态(不是DEFINE状态则抛出异常)
setUseNewAPI();判断当前是走新的api还是旧的api
connect(); 实例化cluster (明确mr运行在本地还是yarn)
submitJobInternal 正真提交任务的方法
checkSpecs(job);
checkOutputSpecs:检查输出路径是否存在和有没有设置
submitClient.getNewJobID():获取jobid
writeSplits:切片分割数据的方法
writeConf(conf, submitJobFile):将切片信息和配置文件写入到临时目录
status = submitClient.submitJob(jobId, submitJobDir.toString() 提交job任务,返回提交状态
state = JobState.RUNNING提交任务完成后将DEFINE改为RUNNING
isSuccessful() 判断任务执行成功还是失败
return status.getState() == JobStatus.State.SUCCEEDED;