【问题标题】:Transferring many small files into Hadoop file system将许多小文件传输到 Hadoop 文件系统中
【发布时间】:2015-06-13 09:53:24
【问题描述】:

我想将 zip 文件中的太多小文件(例如 200k 文件)从本地计算机传输到 HDFS。当我解压缩 zip 文件并将文件传输到 HDFS 时,需要很长时间。无论如何我可以将原始 zip 文件传输到 HDFS 并在那里解压缩吗?

【问题讨论】:

  • 你为什么会更快?
  • 使用 hadoop dfs -put 命令从本地机器传输许多小文件需要时间。我收到了几条警告消息,因为这需要很长时间,而且亚马逊还向我收取了更多费用。在同一个文件系统上解压缩文件通常比从文件系统复制到另一个文件要快。

标签: hadoop zip hdfs


【解决方案1】:

如果您的文件以 GB 为单位,那么此命令肯定有助于避免空间不足错误,因为无需在本地文件系统上解压缩文件。

hadoop 中的 put 命令支持从标准输入读取输入。要从标准输入读取输入,请使用“-”作为源文件。

压缩文件名: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

【讨论】:

  • 没错,但我想在 HDFS 上拥有单个文件,我不想合并它们。
猜你喜欢
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多