为什么mapreduce将压缩文件拆分为输入拆分?

时间:2014-07-23 21:29:34

标签: hadoop mapreduce

因此,根据我的理解,当hdfs存储块大小为64 MB的bzip2压缩1GB文件时,该文件将存储为16个不同的块。如果我想在此压缩文件上运行map-reduce作业,map reduce尝试再次拆分文件。为什么mapreduce不会自动使用hdfs中的16个块而不是再次拆分文件?

1 个答案:

答案 0 :(得分:2)

我想我知道你的困惑来自哪里。我会尝试清理它。

HDFS将您的文件分割成块。这些是文件的物理分区。

MapReduce在这些块之上创建逻辑拆分。这些拆分是基于许多参数定义的,块边界和位置是一个重要因素。您可以将最小分割大小设置为128MB,在这种情况下,每个分割可能恰好是两个64MB块。

所有这些与您的bzip2压缩无关。如果您使用过gzip压缩,则每次拆分都是整个文件,因为gzip不是可拆分压缩。