如何在容器格式的Hadoop中使用Snappy

时间:2012-04-16 22:27:44

标签: hadoop compression mapreduce

我必须使用Snappy压缩地图o / p和map-reduce o / p。此外,这应该是可拆分的。

当我在网上学习时,为了让Snappy写出可拆分的o / p,我们必须以类似容器的格式使用它。

你能建议怎么做吗?我尝试在网上找到一些例子,但不能很好。我正在使用Hadoop v0.20.203。

感谢。 PIYUSH

2 个答案:

答案 0 :(得分:5)

输出

conf.setOutputFormat(SequenceFileOutputFormat.class); SequenceFileOutputFormat.setOutputCompressionType(conf, CompressionType.BLOCK); SequenceFileOutputFormat.setCompressOutput(conf, true); conf.set("mapred.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec");

用于地图输出

Configuration conf = new Configuration(); conf.setBoolean("mapred.compress.map.output", true); conf.set("mapred.map.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec");

答案 1 :(得分:1)

在为Job安装的新API OutputFormat中,而不是为配置安装。 然后,第一部分将是:

Job job = new Job(conf);
...
SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);
SequenceFileOutputFormat.setCompressOutput(job, true);

conf.set("mapred.output.compression.codec","org.apache.hadoop.io.compress.SnappyCodec");