繁体   English   中英

如何解压 hadoop hdfs 中的文件

[英]How to untar a file in hadoop hdfs

我本地目录下有很多JSON个文件(1MM)。 我需要将这些 JSON 文件原样移动到 HDFS。

创建了一个包含所有 JSON 文件的 tar。

tar -cvf filename.tar local_folder_name

将 .tar 文件移动到 hdfs 目录

hdfs dfs -put filename.tar hdfs://nameservice1/user/hive/warehouse/dbname.db/table_name/

我需要从 hdfs 中的 tar 中提取所有文件,并将它们作为单独的 JSON 文件保存在 hdfs 中。我使用 tar 选项的原因是将单个文件移动到 hdfs,而不是一次将一个文件移动到 hdfs 中的每个文件1 MM。(非常慢,不确定是否会完成)

我尝试了以下选项和其他一些变体。

hdfs dfs -cat hdfs://nameservice1/user/hive/warehouse/dbname.db/table_name/filename.tar | tar -x | hdfs dfs -put - /user/hive/warehouse/dbname.db/table_name/untar_dest

我在 hdfs 目录中看到一个名为 untar_dest 的新文件,但它的大小为 0,并且没有任何内容。

-rwxrwx--x+  3 hive hive          0 2020-05-15 21:23 /user/hive/warehouse/dbname.db/ctable_name/untar_dest

有些事情不正确,我无法找到解决这个问题的方法。

hdfs中的.tar文件如何解压?

您可以编写简单的 java api,使用org.apache.hadoop.fs.FileUtil解压

https://hadoop.apache.org/docs/r2.4.1/api/org/apache/hadoop/fs/FileUtil.html

几个例子,你可以在这里找到

https://www.codota.com/code/java/methods/org.apache.hadoop.fs.FileUtil/unTar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM