我配置hadoop-2.4.0集群来压缩映射输出,我的mapred-site.xml设置如下
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
当我运行InvertedIndex,压缩工作,我可以看到不同的计数器在"减少洗牌字节"。
然而,当我运行Sort时,在压缩和不压缩之间"减少shuffle字节"没有区别。这意味着压缩不起作用。
这太奇怪了。我被卡住了。你知道我哪里做错了吗?
我认为如果这些程序中的一个在Driver类(主方法)中显式设置了属性:conf.setCompressMapOutput(false);
,那么这个设置将覆盖mapred-site.xml
设置。