在上一篇文章《Hadoop-2.4.1源码分析--MapReduce作业(job)提交源码跟踪》中,我介绍了Job的提交过程源码,介绍的最后一个方法是submitJobInternal(Jobjob, Cluster cluster),该方法向系统提交作业(该方法不仅设置mapper数量,还执行了一些其它操作如检查输出格式等),在该方法的第394行,涉及到如下一个方法--writeSplits(),该方法是用于切片处理并且返回map任务数的,当时碍于篇幅没有细讲,今天详细的总结一下。
进入writeSplits()方法,该方法会根据是否使用了新API选择不同的方法写,当然,此处都是使用新版API。
进入writeNewSplits()方法,可以看出该方法首先获取splits数组信息后,排序,将会优先处理大文件。最终返回
mapper数量。这其中又分为两部分:确定切片数量 和 写入切片信息。确定切片数量的任务交由FileInputFormat的

819

被折叠的 条评论
为什么被折叠?



