我有一个使用Hadoop 1.0.0的集群,我想运行一个处理大量bz2文件的MR作业。在版本0.21.0中,Bz2编解码器支持分割输入文件,但是我在1.0.0中找不到此功能。有没有相当于在1.0.0中拆分bz2输入?或者我应该手动应用0.21.0的补丁吗?
答案 0 :(得分:2)
1.x版本的Hadoop尚不支持任何可拆分压缩编解码器。 它确实支持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
答案 1 :(得分:0)
可以找到BZip2 Codec API here。
答案 2 :(得分:0)
您可以尝试使用Pig,它提供了Hadoop缺少的1.0.0功能。 Pig会分割输入文件。
答案 3 :(得分:-2)
您可以使用org.apache.hadoop.io.compress.BZip2Codec
进行输入拆分。