如何tar HDFS 中的文件夹?

How to tar a folder in HDFS?

就像Unix命令tar -czf xxx.tgz xxx/,有没有一种方法可以在HDFS中做同样的事情?我在 HDFS 中有一个文件夹有超过 100k 的小文件,我想尽快将它下载到本地文件系统。 hadoop fs -get太慢了,我知道hadoop archive可以输出一个har,但好像不能解决我的问题。

据我所见,

https://issues.apache.org/jira/browse/HADOOP-7519

无法使用 hadoop 命令执行 tar 操作。正如我上面提到的,这已作为改进提交,尚未 resolved/available 尚未使用。

希望这能回答您的问题。

关于您的情况 - 在 HDFS 中拥有 10 万个小文件不是一个好的做法。您可以找到一种方法将它们全部合并(可能是通过 Hive 创建表或从该数据 Impala )或将所有小文件移动到 HDFS 中的单个文件夹并使用 hadoop fs -copyToLocal <HDFS_FOLDER_PATH>; 来获取整个文件文件夹以及其中的所有文件。