在 Hadoop 叢集之間傳輸資料的最佳實踐

在 Hadoop 叢集之間傳輸資料的最佳實踐

情況: 我需要將大約 100TB 的資料從舊的 Hadoop 叢集傳輸到新的 Hadoop 叢集。這兩個叢集與每個叢集上的名稱節點有直接 1GbE 連接。資料節點未連接。

我嘗試過的:

  • Distcp:這不起作用,因為新舊資料節點沒有連接,它會報告每個 MapReduce 作業的連接逾時。
  • hdfs dfs -cp:到目前為止,這工作得很好,但往往會減慢速度,並最終在幾個小時後停止傳輸。它也不支援壓縮或良好的可重啟性。

我感興趣的是:

  • 由於叢集1 和叢集2 之間的連接是瓶頸,因此我有興趣找到一個工具,可以讓我壓縮叢集1 上的數據,透過線路發送數據,開銷很小(可能是netcat?),然後在叢集2上解壓縮它Rsync 是完美的,但我不知道如何在兩個 Hadoop 叢集之間使用它。
  • 其他我不熟悉的建議。

我的問題:

  • 鑑於列出的限制,我可以使用哪些工具或腳本在叢集 1 和叢集 2 之間有效地傳輸資料?

相關內容