gpt4 book ai didi

hadoop - 每个 Hadoop 映射器将读取的默认大小是多少?

转载 作者:可可西里 更新时间:2023-11-01 14:20:43 26 4
gpt4 key购买 nike

HDFS 的 block 大小是 64 MB 吗?有没有我可以用来更改它的配置参数?

对于读取gzip文件的mapper,gzip文件的数量是否一定等于mapper的数量?

最佳答案

这取决于您:

  • 输入格式 - 一些输入格式(NLineInputFormatWholeFileInputFormat)在 block 大小以外的边界上工作。一般来说,尽管从 FileInputFormat 扩展的任何内容都将使用 block 边界作为指南
  • 文件 block 大小 - 各个文件的 block 大小不需要与默认 block 大小相同。这是在文件上传到 HDFS 时设置的 - 如果未明确设置,则应用默认 block 大小(在上传时)。文件上传后对默认/系统 block 大小的任何更改都不会影响已上传的文件。
  • FileInputFormat 配置属性 mapred.min.split.sizemapred.max.split.size 通常默认为 1Long.MAX_VALUE,但是如果这在您的系统配置或您的工作中被覆盖,那么这将改变每个映射器处理的数据量,以及映射器的数量产生的任务。
  • 不可拆分压缩 - 例如 gzip,不能​​由多个映射器处理,因此每个 gzip 文件将获得 1 个映射器(除非您使用类似 CombineFileInputFormat 的东西,复合输入格式)

因此,如果您有一个 block 大小为 64m 的文件,但希望每个 map task 处理的比这个多或少,那么您应该能够设置以下作业配置属性:

  • mapred.min.split.size - 大于默认值,如果你想使用更少的映射器,代价是(可能)丢失数据局部性(所有数据由单个映射任务处理现在可能在 2 个或更多数据节点上)
  • mapred.max.split.size - 小于默认值,如果你想使用更多的映射器(比如你有一个 CPU 密集型映射器)来处理每个文件

如果您使用的是 MR2/YARN,则上述属性将被弃用并替换为:

  • mapreduce.input.fileinputformat.split.minsize
  • mapreduce.input.fileinputformat.split.maxsize

关于hadoop - 每个 Hadoop 映射器将读取的默认大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com