2012-01-13 55 views
0

我想從本地傳輸大量文件到hadoop hdfs。 在我的java代碼中,我只有一個連接到hadoop。但我打電話TransferFromLocal使用許多線程的hadoop hdfs

fileSystem.transferFromLocal 

同時在50個線程。

我認爲這可能不是一個好方法,因爲它真的很慢。

任何人都可以請給我一些關於這方面的建議嗎?非常感謝你。

回答

1

你需要弄清楚瓶頸導致緩慢轉移,它可以是任何。只增加線程數量不會增加HDFS寫入的比例。沒有深入瞭解Hadoop集羣的詳細信息,就很難診斷問題。

這裏有一些事情要考慮

  1. 檢查本地計算機和Hadoop集羣之間的網絡帶寬。

  2. 本地磁盤I/O也可能是瓶頸。

  3. 嘗試增加數據節點的數量。請注意,數據直接從客戶端流式傳輸到管道中的第一個數據節點。第一個轉發到第二個,轉發到下一個數據節點。

  4. 檢查任何配置參數以微調HDFS。

查看Architecture Guide瞭解更多關於HDFS的細節。