Best Practices für die Datenübertragung zwischen Hadoop-Clustern

Best Practices für die Datenübertragung zwischen Hadoop-Clustern

Situation: Ich muss etwa 100 TB von einem alten Hadoop-Cluster auf einen neuen Hadoop-Cluster übertragen. Die beiden Cluster verfügen über eine direkte 1GbE-Verbindung vom Namenknoten auf jedem Cluster. Die Datenknoten sind nicht verbunden.

Was ich versucht habe:

  • Distcp: Dies funktioniert nicht, da die alten und neuen Datenknoten nicht verbunden sind. Bei jedem MapReduce-Job würde eine Zeitüberschreitung der Verbindung gemeldet.
  • hdfs dfs -cp: Das funktioniert bisher ganz gut, wird aber langsamer und stoppt die Übertragung nach ein paar Stunden. Es unterstützt auch keine Komprimierung und bietet keine gute Neustartfähigkeit.

Was mich interessiert:

  • Da meine Verbindung zwischen Cluster 1 und Cluster 2 den Engpass darstellt, bin ich an einem Tool interessiert, mit dem ich die Daten auf Cluster 1 komprimieren, mit sehr geringem Overhead über die Leitung senden (vielleicht Netcat?) und auf Cluster 2 dekomprimieren kann. Rsync wäre perfekt, aber ich bin nicht sicher, wie ich das zwischen zwei Hadoop-Clustern verwenden kann.
  • Weitere Empfehlungen, die ich nicht kenne.

Meine Frage:

  • Welche Tools oder Skripte kann ich verwenden, um unter Berücksichtigung der aufgeführten Einschränkungen Daten effizient zwischen Cluster 1 und Cluster 2 zu übertragen?

verwandte Informationen