1. MapTask并行度
      1. 问题:
        1. a文件300M,b文件100M,两个文件都存入hdfs,并作为某个mr任务的输入数据,现在我们请问下当前这个mr任务的split,以及MapTask的并行度是多少呢?
      2. 切片的计算方式:按照文件逐个计算,
        1. a: 0-128M 128-256M 256-300M
        2. b:0-100M
      3. 结果:4个split;并行度为4!!!
      4. 注意:在大数据分布式计算框架中,移动计算也不要移动数据,移动数据的成本很高,移动计算比较简单。
    2. 切片大小等于block大小,并行度等于split数量!!
    1. shuffle机制(MR的核心阶段 重点)
    1. shuffle机制——Combiner组件

    1. CombineInputForMat切片原理:
      1. image.png
      2. 4个小文件:
        1. 2M 7M 0.3M 8.2M
      3. 假设设置setMaxInputSplitSize的值为4M
      4. 划分:
        1. 2M<4M,那么只划分为一块;
        2. 7M>4M,但不是大于2倍,那么平均划分成3.5M共两块;
        3. 0.3M<4M,那么划分为一块;
        4. 8.2M>4M,且大于2倍,那么先按照4M 划分一块,再将剩下的平均划分成2.1M共两块;
        5. 2M 3.5M 3.5M 0.3M 4M 2.1M 2.1M 共7个虚拟存储块;
      5. 所以:最终会形成3个切片 (2+3.5) (3.5+0.3+4) (2.1+2.1) (小的虚拟块不够4M,就将下一块加一起,再次比较)