我有一个使用Hadoop1.0.0的集群,我想运行一个处理大型bz2文件的MR作业。在0.21.0版本中,Bz2编解码器支持对输入文件进行拆分,但是我在1.0.0中找不到此功能。在1.0.0中有没有等同于拆分bz2输入的方法?或者我应该手动应用0.21.0版本的补丁?
发布于 2012-05-02 05:58:47
Hadoop的1.x版本还不支持任何可拆分的压缩编解码器。它支持Bzip2,但不支持splittable。这取决于这个问题https://issues.apache.org/jira/browse/HADOOP-7823目前看起来这个特性将出现在Hadoop1.1.0中
绕过这个问题最简单的方法是看看cloudera打包cdh4,它目前还处于测试阶段。它有做拆分的最新Bzip2实现。
参考资料:
hadoop1.0.0接口:
http://hadoop.apache.org/common/docs/r1.0.0/api/org/apache/hadoop/io/compress/BZip2Codec.html
public class BZip2Codec
extends Object
implements CompressionCodecAFAIKhadoop0.23.1(将是hadoop2.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-02 08:58:24
可以在here中找到BZip2编解码器API。
发布于 2015-02-14 03:51:09
您可以尝试使用Pig,它提供了Hadoop在1.0.0中缺少的功能。Pig将拆分输入文件。
https://stackoverflow.com/questions/10397022
复制相似问题