Hadoop 0.20.205 Job (а не JobConf) сжатие Bzip2 - PullRequest
0 голосов
/ 14 декабря 2011

В версии hadoop 0.20.2 можно добавить сжатие ввода / вывода в jobconf следующим образом:

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);
}

Ответы [ 2 ]

0 голосов
/ 29 декабря 2011

Я нашел способ сжать вывод:

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); 
0 голосов
/ 14 декабря 2011

Используйте класс Configuration , как показано ниже, при отправке задания

Configuration conf = new Configuration();
conf.set("mapred.output.compression.codec",
    "org.apache.hadoop.io.compress.BZip2Codec");
Job job = new Job(conf);
...