1. InputFormat: TextInputFormat
    2. mapreduce.input.fileinputformat.split.minsize = 1 配置, 没有配置默认为 1
    3. mapreduce.input.fileinputformat.split.maxsize = 1 最大的分片值
    4. long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job));
    5. 计算分片:
    6. long splitSize = 0;
    7. 调大minSize 扩大分片大小, 调小 maxSize 调小分片大小.
    8. protected long computeSplitSize(long blockSize, long minSize,
    9. long maxSize) {
    10. return Math.max(minSize, Math.min(maxSize, blockSize));
    11. }
    12. 分片排序:
    13. 按照分片长度从小到大排序
    14. Arrays.sort(array, new SplitComparator());
    15. 配置: mapreduce.job.maps
    16. 没有配置默认使用maps 填充, 设置map
    17. conf.setInt(MRJobConfig.NUM_MAPS, maps);
    18. 写配置文件到提交目录
    19. writeConf(conf, submitJobFile);
    20. Job 继承了Thread, 然后查看run() 方法. 新建MapTask 运行。
    21. org.apache.hadoop.mapred.LocalJobRunner.Job#Job