ZooKeeper-Tutorial
Was ist ein verteiltes System?
Eine verteilte Anwendung ist eine Anwendung, die auf mehreren Systemen in einem Netzwerk ausgefรผhrt werden kann. Sie wird gleichzeitig ausgefรผhrt, indem sie sich koordiniert, um eine bestimmte Aufgabe zu erledigen. Die Ausfรผhrung dieser Aufgaben kann bei einer nicht verteilten Anwendung mehrere Stunden dauern.
Was ist Zookeeper?
Apache Zookeeper ist ein verteilter Open-Source-Koordinierungsdienst, der bei der Verwaltung einer groรen Anzahl von Hosts hilft. Verwaltung und Koordination in einer verteilten Umgebung sind schwierig. Zookeeper automatisiert diesen Prozess und ermรถglicht es Entwicklern, sich auf die Entwicklung von Softwarefunktionen zu konzentrieren, anstatt sich um deren verteilte Natur zu kรผmmern.
Zookeeper hilft Ihnen bei der Verwaltung von Konfigurationsinformationen, Benennungen und Gruppendiensten fรผr verteilte Anwendungen. Es implementiert verschiedene Protokolle im Cluster, sodass die Anwendung diese nicht selbst implementieren muss. Es bietet eine einzige zusammenhรคngende Ansicht mehrerer Maschinen.
Warum Apache Zookeeper?
Hier sind wichtige Grรผnde fรผr die Beliebtheit des Zookeepers:
- Es ermรถglicht gegenseitigen Ausschluss und Zusammenarbeit zwischen Serverprozessen
- Es stellt sicher, dass Ihre Anwendung konsistent lรคuft.
- Der Transaktionsprozess wird niemals teilweise abgeschlossen. Es erhรคlt entweder den Status โErfolgreichโ oder โMisserfolgโ. Der verteilte Zustand kann aufrechterhalten werden, aber es ist niemals falsch
- Unabhรคngig davon, mit welchem โโServer er sich verbindet, kann ein Client dieselbe Ansicht des Dienstes sehen
- Hilft Ihnen, die Daten gemรคร dem spezifischen Regelwerk zu kodieren
- Es hilft, einen standardisierten hierarchischen Namespace รคhnlich wie Dateien und Verzeichnisse beizubehalten
- Computer, die als einzelnes System laufen und lokal oder geografisch verbunden sein kรถnnen
- Es ermรถglicht das Beitreten/Verlassen von Knoten in einem Cluster und den Knotenstatus in Echtzeit
- Sie kรถnnen die Leistung steigern, indem Sie mehr Maschinen bereitstellen
- Es ermรถglicht Ihnen, einen Knoten als Leiter zu wรคhlen, um die Koordination zu verbessern
- ZooKeeper arbeitet schnell mit Workloads, bei denen das Lesen der Daten hรคufiger vorkommt als das Schreiben
Zookeeper Architecture: Wie funktioniert es?
Hier eine kurze Erklรคrung dazu Apache Zookeeper-Architektur:
- Zookeeper folgt einem Client-Server Architektur
- Alle Systeme speichern eine Kopie der Daten
- Fรผhrungskrรคfte werden beim Start gewรคhlt

Server: Der Server sendet eine Bestรคtigung, wenn ein Client eine Verbindung herstellt. Falls vom verbundenen Server keine Antwort erfolgt, leitet der Client die Nachricht automatisch an einen anderen Server weiter.
Kunden: Der Client ist einer der Knoten im verteilten Anwendungscluster. Er hilft Ihnen, auf Informationen vom Server zuzugreifen. Jeder Client sendet in regelmรครigen Abstรคnden eine Nachricht an den Server, die dem Server mitteilt, dass der Client aktiv ist.
Spitzenreiter: Einer der Server wird zum Leader ernannt. Es gibt den Clients alle Informationen sowie eine Bestรคtigung, dass der Server aktiv ist. Es fรผhrt eine automatische Wiederherstellung durch, wenn einer der verbundenen Knoten ausfรคllt.
Anhรคnger: Ein Serverknoten, der den Leader-Anweisungen folgt, wird als Follower bezeichnet.
- Client-Leseanfragen werden vom entsprechend verbundenen Zookeeper-Server bearbeitet
- Die Client-Schreibanforderungen werden vom Zookeeper-Leiter bearbeitet.
Ensemble/Cluster: Gruppe von Zookeeper-Servern, die Ensemble oder a genannt wird Cluster. Sie kรถnnen die ZooKeeper-Infrastruktur im Clustermodus verwenden, um das System auf den optimalen Wert zu bringen, wenn Sie Apache ausfรผhren.
ZooKeeper-WebUI: Wenn Sie mit der ZooKeeper-Ressourcenverwaltung arbeiten mรถchten, mรผssen Sie diese verwenden WebUI. Es ermรถglicht die Arbeit mit ZooKeeper รผber die Web-Benutzeroberflรคche, anstatt die Befehlszeile zu verwenden. Es bietet eine schnelle und effektive Kommunikation mit der ZooKeeper-Anwendung.
Das Zookeeper-Datenmodell (ZDM)
In diesem ZooKeeper-Tutorial lernen wir nun das Zookeeper-Datenmodell kennen. Die folgende Abbildung erlรคutert das Apache Zookeeper-Datenmodell:

- Das Zookeeper-Datenmodell folgt einem hierarchischen Namespace, in dem jeder Knoten als ZNode bezeichnet wird. Ein Knoten ist ein System, auf dem der Cluster ausgefรผhrt wird.
- Jeder ZNode verfรผgt รผber Daten. Es kann Kinder haben oder auch nicht
- ZNode-Pfade:
- Kanonisch, durch Schrรคgstrich getrennt und absolut
- Verwenden Sie keine relativen Referenzen
- Namen kรถnnen Unicode-Zeichen enthalten
- ZNode behรคlt die Statistikstruktur und die Versionsnummer fรผr Datenรคnderungen bei.
Arten von Zookeeper-Knoten
Es gibt drei Arten von Znodes:
Beharrlichkeit Znode: Dieser Znode-Typ bleibt auch dann aktiv, wenn der Client, der diesen bestimmten Znode erstellt hat, getrennt wird. Standardmรครig sind in zookeeper alle Knoten persistent, wenn dies nicht angegeben ist.
Flรผchtig Znode: Diese Art von Zookeeper-Znode bleibt aktiv, bis der Client aktiv ist. Wenn die Verbindung zwischen dem Client und dem Zookeeper unterbrochen wird, wird er daher ebenfalls gelรถscht. Darรผber hinaus ist es ephemeren Knoten nicht gestattet, untergeordnete Knoten zu haben.
Sequenziell Znode: Sequentielle Znodes kรถnnen entweder kurzlebig oder dauerhaft sein. Wenn also ein neuer Znode als sequentieller Znode erstellt wird. Sie kรถnnen den Pfad des Znodes zuweisen, indem Sie dem ursprรผnglichen Namen eine 10-stellige Sequenznummer hinzufรผgen.
ZDM-Uhren
Zookeeper, ein รberwachungsereignis ist ein einmaliger Auslรถser, der an den Client gesendet wird, der die รberwachung eingestellt hat. Es tritt auf, wenn sich Daten von dieser รberwachung รคndern. Mit der ZDM-รberwachung kรถnnen Clients Benachrichtigungen erhalten, wenn sich der Znode รคndert. ZDM-Lesevorgรคnge wie getData(), getChidleren() usw. bieten die Mรถglichkeit, eine รberwachung einzustellen.
Uhren sind geordnet, die Reihenfolge der รberwachungsereignisse entspricht der Reihenfolge der Aktualisierungen. Ein Client kann ein รberwachungsereignis fรผr Znode sehen, bevor er die neuen Daten sieht, die diesem Znode entsprechen.
ZDM-Zugriffskontrollliste
Zookeeper verwendet ACLs, um den Zugriff auf seine Znodes zu steuern. ACL besteht aus einem Paar (Schema: ID, Berechtigung)
Eingebaute ACL-Schemata:
Welt: hat eine einzige ID, jeder
auth: Keine ID verwenden, sondern einen authentifizierten Benutzer darstellen
Digest: Verwenden Sie einen Benutzernamen: Passwort
host: Ermรถglicht die Verwendung des Hostnamens des Clients als ACL-ID-Identitรคt
IP: Verwenden Sie die IP-Adresse des Client-Hosts als ACL-ID-Identitรคt
ACL-Berechtigungen:
- CREATE
- weiter LESEN
- SCHREIBEN
- LรSCHEN
- ADMINISTRATOR
Ex (IP: 192.168.0.0/16, READ)
Die ZKS โ Sitzungszustรคnde und Lebensdauer

- Bevor eine Anfrage ausgefรผhrt wird, ist es wichtig, dass der Client eine Sitzung mit dem Dienst aufbaut
- Alle Vorgรคnge, die Clients an den Dienst senden, werden automatisch einer Sitzung zugeordnet.
- Der Client kann sich mit jedem Server im Cluster verbinden. Er verbindet sich jedoch nur mit einem einzigen Server.
- Die Sitzung bietet โAuftragsgarantienโ. Die Anforderungen in der Sitzung werden in FIFO-Reihenfolge ausgefรผhrt
- Die Hauptzustรคnde einer Sitzung sind 1) Verbindung herstellen, 2) Verbunden, 3) Geschlossen, 4) Nicht verbunden.
So installieren Sie ZooKeeper
Schritt 1) Klicken Sie auf โWeiter zum Abonnierenโ.
Gehe dahin Link und klicken Sie auf โWeiter zum Abonnierenโ.
Schritt 2) Akzeptieren Sie die Allgemeinen Geschรคftsbedingungen
Akzeptieren Sie auf der nรคchsten Seite die Lizenzvereinbarung
Schritt 3) Dankesnachricht angezeigt
Sie sehen die folgende Meldung
Schritt 4) Klicken Sie auf โWeiter zur Konfigurationโ.
Aktualisieren Sie die Seite nach 5 Minuten und fahren Sie mit der Konfiguration fort
Schritt 5) Klicken Sie auf โWeiter zum Startenโ.
Starten Sie im nรคchsten Bildschirm ZooKeeper
Schritt 6) Herzlichen Glรผckwunsch!
Du bist fertig!
Apache ZooKeeper-Anwendungen
Apache Zookeeper wird fรผr folgende Zwecke verwendet:
- Verwalten der Konfiguration
- Namensdienste
- Den Anfรผhrer wรคhlen
- Die Nachrichten in die Warteschlange stellen
- Verwaltung des Benachrichtigungssystems
- Synchronisation
- Verteilt Cluster Management
Unternehmen, die Zookeeper nutzen
- Yahoo
- eBay
- Netflix
- Zynga
- Nutanix
Nachteile der Verwendung von Zookeeper
- Wenn Sie neue Zookeeper-Server hinzufรผgen, kann es zu Datenverlust kommen
- Fรผr Benutzer ist keine Migration zulรคssig
- Wir bieten keine Unterstรผtzung fรผr die Platzierung und Sensibilisierung des Racks
- Mit Zookeeper kรถnnen Sie die Anzahl der Pods nicht reduzieren, um versehentlichen Datenverlust zu verhindern
- Sie kรถnnen den Dienst nicht auf Hostnetzwerke umstellen, ohne eine vollstรคndige Neuinstallation durchzufรผhren, wenn der Dienst in einem virtuellen Netzwerk bereitgestellt wird.
- Der Dienst unterstรผtzt keine รnderung der Volumenanforderungen nach Abschluss der ersten Bereitstellung
- Es sind viele Knoten beteiligt, daher kann es mehrere Fehlerquellen geben
- Nachrichten kรถnnen im Kommunikationsnetzwerk verloren gehen, was eine spezielle Software erfordert, um sie wiederherzustellen
Zusammenfassung
- Eine verteilte Anwendung ist eine Anwendung, die auf mehreren Systemen in einem Netzwerk ausgefรผhrt werden kann
- Apache Zookeeper ist ein verteilter Open-Source-Koordinierungsdienst, der Sie bei der Verwaltung einer groรen Anzahl von Hosts unterstรผtzt
- Es ermรถglicht gegenseitigen Ausschluss und Zusammenarbeit zwischen Serverprozessen
- Server, Client, Leader, Follower, Ensemble/Cluster, ZooKeeper WebUI sind wichtige Zookeeper-Komponenten
- Drei Arten von Z-Knoten sind Persistenz, Ephemer und Sequentiell
- Die ZDM-รberwachung ist ein einmaliger Auslรถser, der an den Client gesendet wird, der die รberwachung eingestellt hat. Es trat auf, als sich die Daten dieser Uhr รคnderten
- Zookeeper Hadoop verwendet ACLs, um den Zugriff auf seine Znodes zu steuern
- Verwalten der Konfiguration, Benennen von Diensten, Auswรคhlen des Leiters, Einreihen der Nachrichten in die Warteschlange, Verwalten des Benachrichtigungssystems, SyncHronisierung, verteilt Cluster Management usw.
- Yahoo, Facebook, eBay, Twitter, Netflix sind einige bekannte Unternehmen, die zookeeper verwenden
- Der Hauptnachteil des Tools besteht darin, dass es zu Verlusten kommen kann, wenn Sie neue Zookeeper-Server hinzufรผgen





