Mapreduce学习之路二

MR数据切片和MapTask并行度的决定机制:

  -问题:MapTask的并行度决定了Map阶段的任务处理并发度,进而影响到整个Job的处理速度

  ~MapTask的并行度机制:

    ·数据块:Block,HDFS上的物理切分后的块,Hadoop1.x版本默认大小64M,2.x默认大小为128M

      ·数据切片:逻辑上对数据进行分片,并不会在磁盘上将其分片进行存储

  ~MapTask的数量 由 客户端提交Job时,切片数量决定

  ~一个切片对应一个MapTask并行实例处理

  ~切片时不考虑数据集整体,逐个针对每个文件进行单独切片

    -切片机制

      -按照文件内容长度进行切片

        -切片大小默认为Block的大小

    -在源码中计算切片的大小的公式:    

        Math.max( minSize , Math.min ( maxSzie , blockSize ))

          minSize = 1

          maxSize = Long.MaxValue

          切片大小 = blockSize

     -切片大小的设置

      maxSize( 切片最大值 ) : 参数如果调的比blockSize小,则会让切片变小,就等于配置的参数值

        minSize( 切片最小值 ) : 参数调的比blockSize大

    -获取切片信息的API

      String name = inputSplit.getPath().getName(); // 获取切片文件的名称

         FileSplit inputSplit = (FileSplit) context.getInputSplit(); // 根据文件类型获取切片信息

原文地址:https://www.cnblogs.com/joey-413/p/13997802.html