如何压缩hadoop目录到单个gzip文件?

vhipe2zx  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(425)

我有一个目录,其中包含许多文件和子目录,我想压缩和导出从hdfs到fs。
我遇到了一个问题-hadoop:用hdfs压缩文件,但它似乎只与文件相关,使用hadoop流媒体和gzipcodec在目录方面没有成功。
为什么要将hdfs文件夹压缩到单个gzip文件中,最有效的方法是什么?
提前谢谢。

j2qf4p5b

j2qf4p5b1#

您将需要一个库或滚动您自己的代码来从目录结构中的文件生成tar流。您可以使用zlib压缩tar流以生成标准的.tar.gz文件。
如果要合并多个此类任务的结果,我可以在这里提供两个技巧:1)可以连接gzip流以生成有效的gzip流;2)如果从非最终tar流中删除最后1024个零字节,可以连接tar流以生成有效的tar流。

t9eec4r0

t9eec4r02#

对于一个快速、肮脏的解决方案,对于那些不想使用hadoop流或任何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

相关问题