ZooKeeper-Tutorial: Was ist, ArchiStruktur von Apache ZooKeeper
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
- SyncHronisierung
- 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