2015-04-08 59 views
1

我想將zip文件中的太多小文件(例如200k文件)從本地機器傳輸到HDFS。當我解壓縮zip文件並將文件傳輸到HDFS時,需要很長時間。無論如何,我可以將原始zip文件轉換爲HDFS並將其解壓縮到那裏?將許多小文件傳輸到Hadoop文件系統

+0

爲什麼你會更快? –

+0

這需要通過hadoop dfs -put命令從本地計算機傳輸許多小文件。我收到了一些警告消息,因爲它需要很長時間,而且我也會被亞馬遜收取更多費用。在同一個文件系統上解壓文件應該比從文件系統複製到另一個文件系統要快。 – Mohsen

回答

0

如果你的文件是GB的,那麼這個命令肯定有助於避免空間不足的錯誤,因爲不需要在本地文件系統上解壓文件。

將命令放在hadoop支持從stdin讀取輸入。爲了讀取stdin的輸入,使用' - '作爲源文件。

壓縮文件名:compressed.tar.gz

gunzip解-c compressed.tar.gz | hadoop fs -put -/user/files/uncompressed_data

只有缺點:這種方法的唯一缺點是在HDFS中,即使本地壓縮文件包含多個文件,數據也會合併到單個文件中。

http://bigdatanoob.blogspot.in/2011/07/copy-and-uncompress-file-to-hdfs.html

+1

沒錯,但我想要HDFS上的單個文件,我不想合併它們。 – Mohsen