可以减少hadoop中的任务接受压缩数据



我们看到map可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到减少任务输入必须以键值的形式进行,因此不能处理压缩数据。

是这样吗?如果是这样的话,当从shuffler/partitioner传输bug数据以减少任务时,我如何处理网络延迟。

谢谢你的帮助。

如果Mapper可以输出压缩数据,那么Reducer当然可以接受压缩数据。这对两者都是透明的,因此输出会自动压缩和解压缩。

我想他/她一定是在说Hadoop必须为您解压缩压缩的输入,因为Reducer不期望压缩的数据必须自己解压缩。

Reducers还可以输出压缩数据,这是单独控制的。您可以控制编解码器。您还可以自动读取压缩数据作为Mapper的输入。

不过也有一些问题:例如,gzip压缩文件不能被Mapper分割,这对并行性不利。但是bzip压缩文件在某些情况下可以被拆分。

可以。只需将此添加到驱动程序类的主方法:

  Configuration conf = new Configuration();
  conf.setBoolean("mapred.compress.map.output", true);
  conf.setClass("mapred.map.output.compression.codec", SnappyCodec.class, CompressionCodec.class);

相关内容

  • 没有找到相关文章

最新更新