如何将Hadoop目录压缩为单个gzip文件?

时间:2017-05-29 14:00:18

标签: hadoop compression hdfs gzip hadoop-streaming

我有一个目录,其中包含许多我想要压缩并从hdfs导出到fs的文件和子目录。

我遇到了这个问题 - Hadoop: compress file in HDFS? ,但它似乎只与文件相关,并且使用hadoop-streaming和GzipCodec使我没有成功使用目录。

将HDFS文件夹压缩为单个gzip文件最有效的原因是什么? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您需要一个库或滚动自己的代码,以便从目录结构中的文件中生成tar流。您可以使用zlib压缩tar流以生成标准的.tar.gz文件。

如果你想要合并多个这样的任务的结果,我可以在这里提供两个花絮:1)你可以连接gzip流来制作有效的gzip流,2)你可以连接tar流来制作有效的tar流 if ,你从非最终的tar流中删除最后的1024个零字节。

答案 1 :(得分:0)

对于一个快速,肮脏的解决方案,对于那些不想使用hadoop-streaming或任何MapReduce作业的人,我使用了FUSE然后在其上执行操作作为传统文件系统。
请注意,您可能不希望将其用作永久性解决方案,仅用于快速获胜:) 进一步阅读:
* https://hadoop.apache.org/docs/r1.2.1/streaming.html
* http://www.javased.com/index.php?api=org.apache.hadoop.io.compress.GzipCodec