提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
MapReduce切片原理
1. 切片 与 MapTask并行度决定机制
2.Job 提交流程源码和切片源码详解
1)Job 提交流程源码详解
waitForCompletion()
submit();
// 1 建立连接
connect();
// 1)创建提交Job 的代理
new Cluster(getConfiguration());
// (1)判断是本地运行环境还是yarn 集群运行环境
initialize(jobTrackAddr, conf);
// 2 提交job
submitter.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());
2)FileInputFormat 切片源码解析(input.getSplits(job))
3. FileInputFormat 切片机制
4. TextInputFormat
5. CombineTextInputFormat