BZip2压缩文件中读取的Hadoop(BZip2 file read in Hadoop)

2019-08-04 17:04发布

我听说我们可以使用多个映射器读取Hadoop中并行的bzip2一个文件的不同部分,以提高性能。 但我不能搜索后找到相关样本。 不胜感激,如果任何人都可以点我的相关代码段。 谢谢。

顺便说一句:是gzip的具有相同的功能(在并联的一个gzip文件的多个映射器处理不同的部分)。

Answer 1:

如果你看一下: http://comments.gmane.org/gmane.comp.jakarta.lucene.hadoop.user/30662 ,你会发现,bzip2的格式确实是分裂型和多个映射器可以在一个文件上工作。 :该补丁在提交https://issues.apache.org/jira/browse/HADOOP-4012 。 然而,现在看来,这仅适用上述HADOOP 0.21.0。

从为了用bzip2以这种技术的亲身经历有什么不同,你需要做的。 Hadoop的应该自动把它捡起来根据你的分分大小。

bzip2的由块的压缩数据,因此有可能在它解压缩的块,并且每个块发送到一个单独的映射器。 然而,gzip的不具有这样的技术,因此这不能被发送到不同映射器。



Answer 2:

你可以看看一个pbzip2并行BZ2压缩和解压的例子。

还有一个平行的gzip,以及, pigz 。 它平行的压缩,而不是平行的减压。 deflate格式不适合于并行解压缩。 但是你可以a)编制与历史的重置一个特殊的gzip流,或者b)你可以建立一个索引第一遍一个gzip文件。 无论哪种方式,你就可以并行读取不同的部分,或有更高效的随机访问。



文章来源: BZip2 file read in Hadoop