
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?