compression - Hadoop 0.20.205 Job(而非JobConf)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示例以输入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

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

关于compression - Hadoop 0.20.205 Job(而非JobConf)Bzip2压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502715/

相关文章:

java - 使用java无法访问文件夹中的文件

bash - 如何在 hadoop 映射器中使用 shell 脚本获取值

python-3.x - 无法为 bz 提取 shape_predictor_68_face_landmarks.dat

azure - 将 Azure Batch 任务输出保留到 Azure 存储

android - 减小 Android 中的图像文件大小(图像类型未知)

video - 实时视频流中的 B 帧

python - 使用 Python 解压缩文件并返回它创建的所有目录

scala - 在 Hadoop 上使用 Spark 运行 Scala 程序

java - 在非集群计算机上编译Hadoop MapReduce并在Hadoop集群上运行

C BZ2_bzDecompress 方式比 bzip2 命令慢