我们看到 map 可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到减少任务输入必须是关键值,因此不能处理压缩数据。
那正确吗?如果那是正确的,当从洗牌器/分区器传输错误数据以减少任务时,我如何处理网络延迟。
谢谢你的帮助。
我们看到 map 可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到减少任务输入必须是关键值,因此不能处理压缩数据。
那正确吗?如果那是正确的,当从洗牌器/分区器传输错误数据以减少任务时,我如何处理网络延迟。
谢谢你的帮助。
如果Mapper
可以输出压缩数据,当然Reducer
可以接受压缩数据。这对两者都是透明的,因此输出会自动压缩和解压缩。
我认为他/她一定是在说 Hadoop 必须为您解压缩该压缩输入,因为Reducer
它不期望它必须自行解压缩的压缩数据。
Reducer
s 也可以输出压缩数据,这是单独控制的。您可以控制编解码器。您还可以Mapper
自动读取压缩数据作为 a 的输入。
但是有一些问题:例如,gzip
压缩文件不能被 a 分割Mapper
,这对并行性不利。但是bzip
在某些情况下可以拆分压缩文件。
是的,它可以。只需将其添加到您的驱动程序类的主要方法中:
Configuration conf = new Configuration();
conf.setBoolean("mapred.compress.map.output", true);
conf.setClass("mapred.map.output.compression.codec", SnappyCodec.class, CompressionCodec.class);