簡體   English   中英

從本地加載大文件到HDFS的最佳方法是什么

[英]What is the best way of loading huge size files from local to hdfs

我的目錄包含多個文件夾,每個目錄中包含N個文件。 單個文件大小為15 GB。 我不知道將文件從本地復制/移動到HDFS的最佳方法是什么。

有許多方法可以做到這一點(使用傳統方法),例如,

  1. hdfs dfs -put /path/to/localdir/ hdfs://path/to/hdfsdir
  2. hdfs dfs -copyFromLocal /path/to/localdir/ hdfs://path/to/hdfsdir
  3. hdfs dfs -moveFromLocal /path/to/localdir/ hdfs://path/to/hdfsdir
  4. hadoop distcp file:///path/to/localdir/ hdfs://namenode:port/path/to/hdfsdir

選項1和2在您的情況下相同。 復制時間不會有任何差異。

選項3可能需要更多時間,因為它將數據復制到HDFS文件系統(與-put相同),然后從本地文件系統中刪除該文件。

選項4是一個棘手的問題。 它專為大型集群間/集群內復制而設計。 但是,您也可以通過為本地文件URL提供前綴“ file://”來對本地文件使用相同的命令。 這不是distcp的最佳解決方案,因為該工具旨在並行運行(使用MapReduce),並且文件位於本地,因此無法利用其強度。 (您可以嘗試在集群節點上創建安裝,這可能會提高distcp的性能)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM