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

可以减少hadoop中接受压缩数据的任务,hadoop,mapreduce,hadoop-partitioning,Hadoop,Mapreduce,Hadoop Partitioning,我们看到map可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到reduce任务输入必须是o键值形式,因此无法处理压缩数据 是这样吗?如果这是正确的,那么在从shuffler/partitioner传输bug数据以减少任务时,如何处理网络延迟 谢谢您的帮助。如果映射器可以输出压缩数据,那么还原器当然可以接受压缩数据。这对两者都是透明的,因此输出会自动压缩和解压缩 我想他/她一定是在说Hadoop必须为您解压缩压缩输入,因为Reducer不希望压缩数据必须自行解压缩 Red

我们看到map可以接受和输出压缩和未压缩的数据。我正在接受cloudera培训,老师提到reduce任务输入必须是o键值形式,因此无法处理压缩数据

是这样吗?如果这是正确的,那么在从shuffler/partitioner传输bug数据以减少任务时,如何处理网络延迟


谢谢您的帮助。

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

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

Reducer
s还可以输出压缩数据,这是单独控制的。您可以控制编解码器。您还可以将压缩数据作为输入自动读取到
映射器

不过也有一些问题:例如,
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);

谢谢你的留言,肖恩。reducer的输入在实际看到之前如何解压缩?有什么想法吗?