zoukankan      html  css  js  c++  java
  • Hadoop新版本中map任务待处理split大小的计算方法

    1. split大小的计算公式

       minSize=max{minSplitSize,mapred.min.split.size} (minSplitSize大小默认为1B)

       maxSize=mapred.max.split.size(不在配置文件中指定时大小为Long.MAX_VALUE)

       splitSize=max{minSize,min{maxSize,blockSize}}(注意,blockSize为文件在hdfs中的块大小,比如我们先配置的dfs.block.size的值为67108864,也即64MB,后向分布式文件系统中存入一个1GB大小的文件A,该文件在hdfs中的块大小为64MB;当我们更改dfs.block.size的值为33554432,即32MB是,此时A文件在分布式文件系统中的blockSize仍为64M,切记啊,这个就曾迷糊俺好长时间.....)

        mapred.min.split.size、mapred.max.split.size、blockSize均可以再配置文件中配置,前面两个在mapred-site.xml中,最后一个可在在hdfs-site.xml中进行配置,单位均为B。

    2.map数是这样计算方式

      文件大小/splitSize>1.1,创建一个split0,文件剩余大小=文件大小-splitSize

       .....

      剩余文件大小/splitSize<=1.1 将剩余的部分作为一个split

      每一个分片对应一个map任务,这样map任务的数目也就显而易见啦。 

  • 相关阅读:
    二分图模板(洛谷P3386)
    2013提高组复赛Day1
    2014Noip提高组复赛Day2题解
    Noip2016Day2T2 蚯蚓
    poj1655 Balancing Act
    codevs1919创世纪
    bzoj1040[ZJOI2008]骑士
    codevs1521 华丽的吊灯
    【20200414】ZumaV3-算法与数据结构课程作业
    【20171111】 Codevs 1214 线段覆盖
  • 原文地址:https://www.cnblogs.com/yueliming/p/3251285.html
Copyright © 2011-2022 走看看