首页 > 解决方案 > Hadoop:如何通过现代 API(2.7+)启用中间数据压缩?

问题描述

我找到了大量关于如何使用已弃用的 API 启用中间数据压缩的建议,但我没有遇到任何最新的问题。我已经对 API 进行了一些探索,但没有发现任何明显的等价物,尽管我仍在加快速度,所以显然也缺乏熟悉性。

这是我遇到的一个例子:

JobConf conf = new JobConf(new Configuration(), MyJob.class);
conf.set("mapreduce.compress.map.output", "true");
conf.set("mapreduce.map.output.compression.codec", 
         "org.apache.hadoop.io.compress.GzipCodec");

如果不使用压缩,所涉及的数据集足够大,可以将 hdfs 节点推入安全模式,因此依赖用户提供 cli 参数会带来不可接受的风险(可用存储空间几乎没有应有的那么多,但这是从我手中)。我需要一个纯编码解决方案。如何在 2.7+ 中启用压缩和设置编解码器?

一个最小的代码示例,或 API 相关部分的概述,将不胜感激。提前致谢!

标签: javahadoopcompressioncloud

解决方案


推荐阅读