2

fileinputformat

HDFS存储系统中,为了存储引出块的概念,块是存储的最小单位,HDFS上的文件都是以块为单位存储的。块的大小一般为64MB或128MB,块的大小有可能会变得更大。

Hadoop在提交作业时,要提交的作业需要进行分片,以达到分而治之的目的,分片操作是根据源文件的情况按照规则划分一系列的InputSplit,每个分片一般有一个Mapper进行处理,所谓的分片只是逻辑上的分片并不需要进行物理上的划分。具体的分片细节由InputSplitFormat 指定,可以调用方法 long splitSize=computeSplitSize(goalSize,minSize,blockSize);以获取分片大小。computeSplitSize 方法返回的大小是 Math.max(minSize,Math.min(goalSize,blockSize));。

其中 goalSize 为输入文件的大小/“配置中定义的 mapred.map.tasks”值,minSize 为mapred.min.split.size,blockSize为128MB,所以,这个算式为取分片大小不大于block,并且不小于在mapred.min.split.size配置中定义的最小Size。当某个分块分成均等的若干分片时,会有最后一个分片大小小于定义的分片大小,则该分片独立成为一个分片。

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2154089/
1
上一篇dll(dll文件怎么安装)
下一篇 什么叫应用程序域(系统领域和应用程序领域区别)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部