0

什么时候该用,什么时候不该用 FileOutputFormat.setCompressOutput(conf, true);

我听说它压缩了映射器输出。有没有可能压缩减速机侧输出?

(如果我的假设是错误的,请清除我,如何压缩mapper输出和reducer输出!)

4

1 回答 1

4

您可以使用 控制减速器输出的mapred.output.compress压缩,使用 控制映射器输出的压缩mapred.compress.map.output。这些配置键可以在站点范围的配置文件、作业设置中设置(为true或),或者作为运行作业时传递给 Hadoop 的选项。false-D

压缩地图输出通常是个好主意。当输出不是最终结果时,我也会压缩减少输出,例如,当我在前一个作业的输出上运行另一个作业时。

压缩通常有助于更快地完成作业(即使它需要额外的压缩/解压缩处理),因为它可以大大减少 I/O 的数量。

您也可以选择压缩编解码器。我们使用 LZO,它不随 Hadoop 一起提供,但可以在这里找到:

https://github.com/kevinweil/hadoop-lzo

LZO 以最小的 CPU 开销压缩得很好。Bzip2 压缩得很好,但开销更大。Gzip 压缩得不太好,开销适中。(这些是概括。)我认为 LZO 具有最佳的特性平衡。

于 2011-08-30T16:59:39.030 回答