2017-05-29 46 views
0

我有一个目录,其中包含大量的文件和子目录,我想压缩并从hdfs导出到fs。如何将Hadoop目录压缩到单个gzip文件?

我遇到了这个问题 - Hadoop: compress file in HDFS? ,但现在看来似乎是只与文件,并使用Hadoop的流媒体和GzipCodec给了我目录没有成功。

为什么要将HDFS文件夹压缩到单个gzip文件最有效?
在此先感谢。

+0

你不能'gzip'答:你可能不希望以此作为一个永久性的解决方案,只为速赢:)
延伸阅读
讲究目录,即使在Unix的FS上。你需要先将它转换成'tar/har'或类似的东西然后执行压缩。 – philantrovert

+0

@philantrovert当然,但你有什么建议如何做? –

+0

我会建议使用apache commons Api编写一个Java程序。它有像TarArchiveOutputStream这样的类,你可以查看它。 – philantrovert

回答

0

您将需要一个库或滚动您自己的代码来制作目录结构中的文件中的tar流。您可以使用zlib压缩焦油流以制作标准的.tar.gz文件。

如果你想合并多个这样的任务的结果,我可以在这里提供的两个小技巧是:1)你可以连接gzip流以生成有效的gzip流; 2)你可以连接tar流来生成一个有效的tar流如果您从非最终tar流删除最后的1024个零字节。

相关问题