我想将 zip 文件中的太多小文件(例如 200k 文件)从本地计算机传输到 HDFS。当我解压缩 zip 文件并将文件传输到 HDFS 时,需要很长时间。无论如何我可以将原始 zip 文件传输到 HDFS 并在那里解压缩吗?
最佳答案
如果您的文件是 GB 的,那么此命令肯定有助于避免空间不足错误,因为无需在本地文件系统上解压缩文件。
hadoop 中的 put 命令支持从 stdin 读取输入。要从标准输入读取输入,请使用“-”作为源文件。
压缩文件名:compressed.tar.gz
gunzip -c 压缩.tar.gz | hadoop fs -put -/user/files/uncompressed_data
唯一的缺点:这种方法的唯一缺点是在 HDFS 中,即使本地压缩文件包含多个文件,数据也会合并到一个文件中。
http://bigdatanoob.blogspot.in/2011/07/copy-and-uncompress-file-to-hdfs.html
关于hadoop - 将许多小文件传输到 Hadoop 文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514666/