[英]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.