Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hadoop中读取BZip2文件_Hadoop_Gzip_Mapper_Bzip2 - Fatal编程技术网

在Hadoop中读取BZip2文件

在Hadoop中读取BZip2文件,hadoop,gzip,mapper,bzip2,Hadoop,Gzip,Mapper,Bzip2,我听说我们可以使用多个映射器在Hadoop中并行读取一个bzip2文件的不同部分,以提高性能。但是我找不到相关的样品。如果有人能告诉我相关的代码片段,我将不胜感激。谢谢 顺便说一句:is gzip具有相同的功能(多个映射程序并行处理一个gzip文件的不同部分)。您可以查看并行bz2压缩和解压缩的示例 还有一个并行的gzip。它执行并行压缩,但不执行并行解压缩。deflate格式不适合并行解压缩。但是,您可以a)准备一个带有历史重置的特殊gzip流,或者b)您可以在第一次通过时将索引构建到gzip

我听说我们可以使用多个映射器在Hadoop中并行读取一个bzip2文件的不同部分,以提高性能。但是我找不到相关的样品。如果有人能告诉我相关的代码片段,我将不胜感激。谢谢

顺便说一句:is gzip具有相同的功能(多个映射程序并行处理一个gzip文件的不同部分)。

您可以查看并行bz2压缩和解压缩的示例

还有一个并行的gzip。它执行并行压缩,但不执行并行解压缩。deflate格式不适合并行解压缩。但是,您可以a)准备一个带有历史重置的特殊gzip流,或者b)您可以在第一次通过时将索引构建到gzip文件中。无论哪种方式,您都可以并行读取不同的部分,或者进行更有效的随机访问。

如果您查看:, 您会发现bzip2格式确实是可拆分的,多个映射器可以在一个文件上工作。已在以下位置提交修补程序:。然而,它似乎只在HADOOP 0.21.0之上可用

从个人经验来看,为了使用bzip2技术,您需要做的事情没有什么不同。hadoop应该根据您的最小分割大小自动拾取它


bzip2按块压缩数据,因此可以按块解压缩数据,并将每个块发送到单独的映射器。但是,gzip没有这种技术,因此无法将其发送给不同的地图绘制者。

感谢Mark提供详细信息。实际上我要问的是如何在Hadoop上使用bzip2和gzip格式。例如,如何使用多个映射器在多个映射器中并行读取一个bzip2文件。你可以先看看它是如何在C中完成的。我不确定Hadoop是否有内置函数来支持多个映射程序并行读取一个bzip2或gzip文件?谢谢Varun,“但是,gzip没有这种技术,因此不能发送给不同的映射程序。”——有没有Hadoop文档声称?正如我所说的,不可能并行解压缩gzip,除非您已经连续解压缩同一个文件一次,并构建了入口点映射,或者gzip文件是专门为并行解压缩准备的,这需要自定义软件。@Varun Shingal是否必须将bzip2添加到hadoop中才能使用它,还是默认情况下它随hadoop一起提供?塔克斯@自2010年发布0.21.0以来,Explorer Hadoop默认支持这一点。太棒了。