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. Es läuft gleichzeitigneoNormalerweise indem sie sich koordinieren, um eine bestimmte Aufgabe zu erledigen. Diese Aufgaben können viel Zeit in Anspruch nehmen hours durch jede nicht verteilte Anwendung auszufüllen.

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 auf dem cluster sodass die Anwendung nicht von selbst implementiert werden sollte. Es bietet eine einzige kohärente Ansicht mehrerer Maschinen.

Warum Apache Zookeeper?

Hier sind wichtige Gründe für die Beliebtheit des Zookeepers:

  • Es ermöglicht gegenseitigen Ausschluss und Cooperazwischen 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, eine einheitliche Hierarchie aufrechtzuerhaltenarchical-Namespace ähnlich wie Dateien und Verzeichnisse
  • Computer, die als einzelnes System laufen und lokal oder geografisch verbunden sein können
  • Es ermöglicht das Beitreten/Verlassen eines Knotens in einem cluster und 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 Tierpfleger archiStruktur:

  • Zookeeper folgt einem Client-Server Architektur
  • Alle Systeme speichern eine Kopie der Daten
  • Führungskräfte werden beim Start gewählt
Architektur von ZooKeeper
Architektur von ZooKeeper

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 in der verteilten Anwendung cluster. Es hilft Ihnen, auf Informationen vom Server zuzugreifen. Jeder Client sendet in regelmäßigen Abständen eine Nachricht an den Server, die dem Server hilft, zu wissen, 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 verwenden cluster Modus, um das System auf den optimalen Wert zu bringen, wenn Sie den 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
Zookeeper-Datenmodell
  • Das Zookeeper-Datenmodell folgt einem hierarchischen Namespace, in dem jeder Knoten als ZNode bezeichnet wird. Ein Knoten ist ein System, in dem die cluster läuft.
  • 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

Bei Zookeeper handelt es sich bei einem Überwachungsereignis um einen einmaligen Auslöser, der an den Client gesendet wird, der die Überwachung festgelegt hat. Es trat auf, als sich die Daten dieser Uhr änderten. Mit der ZDM-Überwachung können Kunden Benachrichtigungen erhalten, wenn sich der Knoten ändert. ZDM gelesen operaFunktionen wie getData(), getChidleren() gibt es die Möglichkeit, eine Uhr 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

ZKS – Sitzungszustände
ZKS – Sitzungszustände
  • Bevor eine Anfrage ausgeführt wird, ist es wichtig, dass der Client eine Sitzung mit dem Dienst aufbaut
  • Alle operaAn den Dienst gesendete Verbindungen werden automatisch einer Sitzung zugeordnet
  • Der Client kann sich mit jedem Server in der Region verbinden cluster. Es wird jedoch nur eine Verbindung zu einem einzigen Server hergestellt
  • 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“.

Installieren Sie ZooKeeper

Schritt 2) Akzeptieren Sie die Allgemeinen Geschäftsbedingungen
Akzeptieren Sie auf der nächsten Seite die Lizenzvereinbarung

Installieren Sie ZooKeeper

Schritt 3) Dankesnachricht angezeigt
Sie werden Folgendes sehenwing Nachricht

Installieren Sie ZooKeeper

Schritt 4) Klicken Sie auf „Weiter zur Konfiguration“.
Aktualisieren Sie die Seite nach 5 Minuten und fahren Sie mit der Konfiguration fort

Installieren Sie ZooKeeper

Schritt 5) Klicken Sie auf „Weiter zum Starten“.
Starten Sie im nächsten Bildschirm ZooKeeper

Installieren Sie ZooKeeper

Schritt 6) Herzlichen Glückwunsch!
Du bist fertig!

Apache ZooKeeper-Anwendungen

Apache Zookeeper wird für Follo verwendetwing Zwecke:

  • 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
  • Facebook
  • eBay
  • Twitter
  • 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 Hostnetzwerk umstellen, ohne eine vollständige Neuinstallation durchzuführen, wenn der Dienst bereitgestellt wirdyed in einem virtuellen Netzwerk
  • Der Dienst unterstützt keine Änderung der Volumenanforderungen nach Abschluss der ersten Bereitstellung
  • Es gibt große numbers Anzahl der beteiligten Knoten, sodass es mehr als einen Fehlerpunkt geben kann
  • 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 Cooperazwischen 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