大体思路:
1 先查找各个单节点,找出依次满足最大分割、最小节点分割,最后剩余数据,进入第二步
2 查看单个机架, 找出依次满足最大分割、最小机架分割,最后剩余数据,进入第三步
3 查找所有机架剩余数据,找出满足最大分割,最后剩余数据(小于最大分割),进入4步
4 将剩下的数据做为一个数据块。
1).三个重要的属性:
- maxSplitSize:切片大小最大值。可通过属性 "mapreduce.input.fileinputformat.split.maxsize" 或 CombineFileInputFormat.setMaxInputSplitSize()方法进行设置【不设置,则所有输入只启动一个map任务】
- minSplitSizeNode:同一节点的数据块形成切片时,切片大小的最小值。可通过属性 "mapreduce.input.fileinputformat.split.minsize.per.node" 或 CombineFileInputFormat.setMinSplitSizeNode()方法进行设置
- minSplitSizeRack:同一机架的数据块形成切片时,切片大小的最小值。可通过属性 "mapreduce.input.fileinputformat.split.minsize.per.rack" 或 CombineFileInputFormat.setMinSplitSizeRack()方法进行设置
- 大小关系:maxSplitSize >= minSplitSizeNode >= minSplitSizeRack
2).切片的形成过程: