Compression Hadoop 0.20.205作业(而非JobConf)Bzip2压缩
在hadoop 0.20.2版本中,可以通过以下方式向jobconf添加输入/输出压缩:Compression Hadoop 0.20.205作业(而非JobConf)Bzip2压缩,compression,hadoop,bzip2,Compression,Hadoop,Bzip2,在hadoop 0.20.2版本中,可以通过以下方式向jobconf添加输入/输出压缩: jobConf.setBoolean("mapred.output.compress", true); jobConf.setClass("mapred.output.compression.codec", BZip2Codec.class, CompressionCodec.class); 不推荐使用jobConf,应改用job。如何在那里添加压缩/解压缩?特别是,如何更改wordcount示例以输入
jobConf.setBoolean("mapred.output.compress", true);
jobConf.setClass("mapred.output.compression.codec", BZip2Codec.class, CompressionCodec.class);
不推荐使用jobConf,应改用job。如何在那里添加压缩/解压缩?特别是,如何更改wordcount示例以输入bzip2文件:
public class WordCount {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
Job job = new Job(conf, "Example Hadoop 0.20.1 WordCount");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenCounterMapper.class);
job.setReducerClass(TokenCounterReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
提交作业时使用以下类
Configuration conf = new Configuration();
conf.set("mapred.output.compression.codec",
"org.apache.hadoop.io.compress.BZip2Codec");
Job job = new Job(conf);
这是我发现的压缩输出的方法:
Job job = new Job(conf, "FromToWordStatistics");
job.setJarByClass(FromToWordStatistics.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setCombinerClass(IntSumReducer.class);
job.setNumReduceTasks(20);
SequenceFileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
SequenceFileOutputFormat.setCompressOutput(job, true);
SequenceFileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class);