首页 > 其他分享 >MapReduce文件切分个数计算方法

MapReduce文件切分个数计算方法

时间:2023-02-06 16:06:24浏览次数:41  
标签:blockSize MapReduce long 用户 切分 大小 计算方法 size


Hadoop的MapReduce计算的第一个阶段是InputFormat处理的,先将文件进行切分,然后将每个切分传递给每个Map任务来执行,本文阐述切分个数,也就是Map任务数目的计算方法;

Hadoop首先会计算每个切分的大小,然后使用”文件总大小/每个切分的大小“来决定划分的总数,如果不足一个切分的大小,则当做1个;

在org.apache.hadoop.mapred.FileInputFormat中给出了计算每个划分大小的方法:

  protected long computeSplitSize(long goalSize, long minSize,
                                       long blockSize) {
    return Math.max(minSize, Math.min(goalSize, blockSize));
  }

其中几个变量的解释如下:

  • blockSize:HDFS存储的基本单元,默认为64MB或者128MB;
  • minSize:由用户设置的最小切分大小,配置项为mapred.min.split.size;
  • goalSize:计算公式为"文件总大小/用户设定的Map任务个数",即用户间接期望的大小;

由此可以推断出选定策略:

  • 划分大小;
  • 划分大小为goalSize:用户设定了Map的任务数目,那么即使算出来的划分大小比block size小也会使用,这个时候出现了两个用户设定值:最小值和期望值,hadoop会选择两者中大的那个;
  • 划分大小为minSize:如果用户期望的值,还有blocksize只都比用户设定的最小值要小,那么就会使用这个最小值;

针对这几个值,用户可以根据输入数据的情况,合理的设置mapred.min.split.size和map.tasks.size来实现优化,InputSplit和blockSize相同是非常好的一种方法,因为不需要拆分block了.


标签:blockSize,MapReduce,long,用户,切分,大小,计算方法,size
From: https://blog.51cto.com/peishuai/6039297

相关文章

  • 0-8 MapReduce
    MapReduce框架InputSplitMap传输整理ReduceOutputMapReduce函数的输入输出接口?MapReduce函数的输入输出接口必须是key,value形式.graphT......
  • 位运算符<<和>>计算方法详细说明
    左移和右移详细说明1、<<(左移)1.运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。2.语法格式:需要移位的数字<<移位的次数例......
  • Google的三架马车--Google MapReduce
    背景介绍国际方面,数据库理论研究起步于20世纪60年代,并于20世纪70年代开始产业化,逐步形成了成熟的IOE(IBM提供硬件,Oracle提供数据库软件,EMC提供存储介质)应用模式,开始占领全......
  • Hadoop文件切分的源码
    TextInputFormatHadoop文件的切分原则:一按每个文件切分二文件大小/分片大小《=1.1则划分为一个文件,否则切分为2个文件三一个切片一个Maptask,一个Maptask代表一个并行......
  • 将一列切分为多列
    问题:没有列名,那么pandas读入时默认按照第一行的格式,前面都是两列,而后面出现了三列,四列,五列数据就会报错。而你直接读入时指定数据列就可以避免这个问题了其实你还可以把......
  • python的split函数切分字符串时为什么会产生空字符串
    群里的一个小伙伴提了一个问题,他使用split函数切分字符串得到的结果里有空字符串,他对空字符串的出现感到困惑不解。text='1aa2'print(text.split('a'))#['1','',......
  • 函数式编程和Data Parallel:MapReduce的前前前世
    由于一时心血来潮、想针对谷歌三驾马车(MapReduce,GFS,BigTable)分别写点啥,故我上个月在GoogleFileSystem及其继任者Colossus中针对以GFS为代表的谷歌存储系统写了一篇......
  • 函数计算与对象存储实现MapReduce
    Serverless架构可以在很多领域发挥极具价值的作用,包括监控告警、人工智能、图像处理、音视频处理等。同样,在大数据领域,Serverless架构仍然可以有良好的表现。以WordCount为......
  • 03初识MapReduce
    初识MapReduce一、什么是MapReduceMapReduce是一种编程范式,它借助Map将一个大任务分解成多个小任务,再借助Reduce归并Map的结果。MapReduce虽然原理很简单,但是使用MapRedu......
  • Hadoop MapReduce介绍、官方示例及执行流程Apache Hadoop概述
    Hadoop离线是大数据生态圈的核心与基石,是整个大数据开发的入门。本次分享内容让初学者能高效、快捷掌握Hadoop必备知识,大大缩短Hadoop离线阶段学习时间,下面一起开始今天的学......