2

我有一个使用 Hadoop 1.0.0 的集群,我想运行一个 MR 作业来处理巨大的 bz2 文件。在 0.21.0 版本中,Bz2 编解码器支持分割输入文件,但是我在 1.0.0 中找不到此功能。是否有任何相当于在 1.0.0 中拆分 bz2 输入的方法?或者我应该为此手动应用 0.21.0 的补丁?

4

4 回答 4

2

Hadoop 1.x 版本尚不支持任何可拆分的压缩编解码器。它确实支持 Bzip2,但不可拆分。这取决于这个问题 https://issues.apache.org/jira/browse/HADOOP-7823 目前看起来这个功能将出现在 Hadoop 1.1.0 中

解决此问题的最简单方法是查看当前处于测试阶段的 cloudera 包装 cdh4。它具有最新的 Bzip2 实现,可以进行拆分。


参考:

Hadoop 1.0.0 API:

http://hadoop.apache.org/common/docs/r1.0.0/api/org/apache/hadoop/io/compress/BZip2Codec.html

public class BZip2Codec
extends Object
implements CompressionCodec

Hadoop 0.23.1(AFAIK 将是 Hadoop 2.x)API:

http://hadoop.apache.org/common/docs/r0.23.1/api/org/apache/hadoop/io/compress/BZip2Codec.html

public class BZip2Codec
extends Object
implements SplittableCompressionCodec 
于 2012-05-01T21:58:47.083 回答
0

BZip2 编解码器 API 可在此处找到。

于 2012-05-02T00:58:24.483 回答
0

您可以尝试使用 Pig,它提供了 Hadoop 1.0.0 所缺乏的功能。Pig 将分割输入文件。

于 2015-02-13T19:51:08.957 回答
-2

您可以org.apache.hadoop.io.compress.BZip2Codec用于输入拆分。

于 2012-05-01T21:13:20.673 回答