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

lmyy7pcs  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(350)

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

dly7yett

dly7yett1#

我想我知道你的困惑是怎么来的了。我会设法弄清楚的。
hdfs将您的文件分割成块。这些是文件的物理分区。
mapreduce在这些块的顶部创建逻辑拆分。这些分割是基于许多参数定义的,块边界和位置是一个很大的因素。您可以将最小分割大小设置为128mb,在这种情况下,每个分割可能正好是两个64mb块。
所有这些都与bzip2压缩无关。如果使用了gzip压缩,则每个分割都将是一个完整的文件,因为gzip不是可分割的压缩。

相关问题