Apache Zookeeper und NoSQL-Datenbanken

Eine große Gruppe von NoSQL-Datenbanken ist eine sperrige Sache zu verwalten. Apache Zookeeper zur Rettung! Die Verfolgung von denen Knoten im Cluster sind, welche Daten jeweils die Verwaltung ist, und dafür zu sorgen, dass die neuen Meister ausgewählt werden, wenn ein Master sind keine leichten Aufgaben versagt.

große verteilte Systeme Die Koordination ist daher sehr schwierig. Sowohl Hadoop und verteilte NoSQL-Datenbanken benötigen eine Möglichkeit, die Konfiguration eines gesamten Clusters zu verwalten. Dieser Prozess muss auch hoch verfügbar sein, so dass es nicht einzelne Fehlerstelle in das Gesamtsystem ist.

Dies ist, wo Apache Zookeeper kommt. Zookeeper bietet eine verteilte, transaktionskonsistente Koordinationsdienst.

Mehrere andere Produkte verwenden Zookeeper für Cluster-Management:

  • Apache Hadoop

  • Solr Wolke

  • Neo4j

  • Accumulo

  • HBase

  • Rackspace

  • Zynga

  • Yahoo! (für mehrere seiner Dienste)

Zookeeper bietet eine speicherinterne hierarchische Speicherstruktur, die auf einem Computer-Dateisystem ähnlich ist. Diese Struktur wird durch den aktuellen Master Zookeeper verwaltet und unter den anderen Knoten im Cluster repliziert. Ein Zoowärter Cluster genannt Der Zoowärter ensemble.

Nur der Master verwaltet Aktualisierungen (schreibt) in den Speicher. Diese Änderungen werden auf die Festplatte Prüfpunkt sie haltbar und dann zu den anderen Instanzen Zookeeper im Ensemble repliziert zu machen.

Diese Dienste speichern ihre Cluster-Konfigurationsdaten in Zookeeper. Einige von ihnen lagern die wichtigsten Bereiche für die Scherben ihrer Datenbank auch. Dies ermöglicht es Kunden, die eine NoSQL-Datenbank verwendet, die Zookeeper verwendet, um mit jedem Zookeeper-Server im Ensemble zu kommunizieren. Auf diese Weise können die Kunden herausfinden, welche NoSQL-Server die Daten, die sie interessiert sind, halten.

Betrachtet, die Knoten speichert die Tastenbereich die Belastung der NoSQL-Servern minimiert, weil sie nicht brauchen, von einem NoSQL-Knoten zu dem Knoten Anfragen nach Daten zu übermitteln, die die Daten tatsächlich hält.

Sie können auch für die Speicherung von Sitzungs- oder anderen Laufzeitdaten verwenden Zookeeper der Datenspeicher für ephemere Speicher (Speicher, der über einen Neustart des Dienstes wird nicht zuletzt), was nützlich ist.

Zookeeper-Server verwenden diese ephemere Speicherung zu bestimmen, wer übernimmt, wenn ein Master ausfällt. Jeder Server erzeugt eine nummerierte ephemeren ZNODE (Speicherdatei) im Schlüsselraum. Wenn der Zookeeper Master (Leiter) einen Hardwarefehler leidet, dann der Besitzer des nächsten ZNODE in der Folge wird Master. Dies ist eine elegante Lösung und vermeidet die # 147-Herde # 148- Effekt, bei dem alle Server kommunizieren wild miteinander für einige Sekunden einen neuen Master zu wählen.

Zookeeper ist eine große Java-Lösung für die inhärenten Probleme in koordinierten System-Management und eine hohe Verfügbarkeit. Sie können es verwenden hochverfügbare Dienste zu implementieren, einschließlich Messaging-Dienste. Also, wenn Sie einen neuen verteilten Dienst erstellen müssen, sollten Sie Zookeeper verwenden.

Menü