2013-02-11 2 views
6

Hat jemand versucht, die Leistung von Datenknoten in mehreren Rechenzentren zu testen? Vor allem über Netzwerke mit kleinen Rohren. Ich kann nicht zu viele Informationen darüber finden und die Informationen, die ich gefunden habe, sind entweder alt (ca. 2010) oder proprietär (scheint DataStax etwas zu haben). Ich weiß, dass Hadoop die Rack-Awareness unterstützt, aber wie ich bereits sagte, habe ich keine Dokumentation zum Tuning eines Systems für mehrere Rechenzentren gesehen.Verteilen von Datenknoten über mehrere Rechenzentren hinweg

Antwort

5

Ich habe es mit einem 12 x DataNode-Cluster ausprobiert, das in einem Verhältnis von 2: 1 zwischen zwei Rechenzentren angeordnet ist, die ungefähr 120 Meilen voneinander entfernt sind. Die Latenz zwischen den Rechenzentren betrug ~ 4 ms über 2 x 1-GbE-Pipes.

2 Racks wurden auf Standort A konfiguriert, 1 Rack auf Standort B. Jedes "Rack" hatte 4 Maschinen. Wir haben Site B grundsätzlich als DR-Site getestet. Replikationsfaktor wurde auf 3 gesetzt.

Lange Rede kurzer Sinn, es funktioniert, aber die Leistung war wirklich, wirklich schlecht. Sie müssen auf jeden Fall die Komprimierung für Ihre Quelle verwenden, Ausgänge zuordnen und reduzieren, um Ihre Schreib-E/A zu verringern, und wenn die Verbindungen zwischen den Sites für irgendetwas anderes verwendet werden, erhalten Sie Zeitüberschreitungen während der Datenübertragung. TCP-Windowing würde unsere Übertragung effektiv auf ungefähr 4MBps beschränken, anstatt auf eine 1GbE-Leitung mögliche 100MBps +.

Sparen Sie sich die Kopfschmerzen und verwenden Sie nur distcp Jobs, um Daten zu replizieren!