Java Hadoop:压缩仅映射作业的输出

Java Hadoop:压缩仅映射作业的输出,java,compression,hadoop,mapreduce,hdfs,Java,Compression,Hadoop,Mapreduce,Hdfs,我有一个仅映射的作业,它以TextOutputFormat输出 我目前看到三种压缩输出的方法: 通过mapred.compress.map.output定义要压缩的映射* 通过mapred.output.compression定义要压缩的输出* 通过定义要通过TextOutputFormat.setCompressOutput()压缩的TextOutputFormat 通过组合前3种可能性中的一种或多种 关于如何正确地做到这一点,您有什么见解吗?选项1仅适用于中间输出,选项2也适用,但更多的是m

我有一个仅映射的作业,它以TextOutputFormat输出

我目前看到三种压缩输出的方法:

  • 通过mapred.compress.map.output定义要压缩的映射*

  • 通过mapred.output.compression定义要压缩的输出*

  • 通过定义要通过TextOutputFormat.setCompressOutput()压缩的TextOutputFormat

  • 通过组合前3种可能性中的一种或多种


  • 关于如何正确地做到这一点,您有什么见解吗?

    选项1仅适用于中间输出,选项2也适用,但更多的是mapred-site.xml方法,选项3是可行的方法。

    与(2)相比,(3)有什么优势吗?(2) (3)应该没问题,我不认为有什么优势。一个用于节点级配置(仍然可由作业覆盖),而另一个用于作业级配置。我认为,(2)和(3)只是作业级配置。如何在节点级别配置压缩?为什么不?其思想是,默认情况下,节点压缩其运行的所有任务的输出,这样就不必由作业设置。它将描述节点的行为。