So installieren und konfigurieren Sie Zookeeper in Ubuntu 18.04

So installieren und konfigurieren Sie Zookeeper in Ubuntu 18.04

Zookeeper ist ein zentraler Dienst zur Aufrechterhaltung von Konfigurationsinformationen, Benennung, Bereitstellung einer verteilten Synchronisation und Bereitstellung von Gruppendiensten.
Alle diese Art von Diensten werden in irgendeiner Form von verteilten Anwendungen verwendet.

In diesem Artikel haben wir die erforderlichen Schritte zur Installation und Konfiguration von 3 Knoten -Zookeeper -Cluster mit einem bestimmten Quorum auf Ubuntu 18 erläutert.04.

In diesem Tutorial lernen Sie:

  • Was ist Zookeeper und seine Übersicht?.
  • Was ist die Architektur von Zookeeper.
  • So konfigurieren Sie die Zookeeper -Hosts und fügen Sie Zookeeper -Benutzer hinzu.
  • So installieren und konfigurieren Sie Oracle JDK.
  • So konfigurieren und einrichten Sie den Zookeeper.
  • So konfigurieren Sie Arbeiterknoten, um sich dem Schwarm -Cluster anzuschließen.
  • So überprüfen Sie den Zookeeper -Cluster und das Ensemble.
Zookeeper Architekturübersicht.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 18.04
Software Zookeeper-3.4.12, Oracle JDK 1.8.0_192
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Zookeeper -Übersicht



Zookeeper ermöglicht es verteilte Prozesse, über einen gemeinsam genutzten hierarchischen Namensraum der Datenregister miteinander zu koordinieren (wir nennen diese Register Znodes), ähnlich wie ein Dateisystem. Im Gegensatz zu normalen Dateisystemen bietet Zookeeper seinen Kunden einen hohen Durchsatz, eine geringe Latenz, hoch verfügbare, streng geordnete Zugriff auf die Znodes.

Die Leistungsaspekte von Zookeeper ermöglichen es in großen verteilten Systemen. Die Zuverlässigkeitsaspekte verhindern, dass es in großen Systemen zum einzelnen Ausfallpunkt wird. Die strikte Ordnung ermöglicht es anspruchsvolle Synchronisation -Primitive, die im Client implementiert werden können.

Der von Zookeeper bereitgestellte Name Speicherplatz ähnelt dem eines Standarddateisystems. Ein Name ist eine Abfolge von Pfadelementen, die durch einen Schrägstrich getrennt sind („/“). Jeder Znode in Zookeeper's Name -Raum wird durch einen Pfad identifiziert. Und jeder Znode hat einen Elternteil, dessen Pfad ein Präfix des Znode mit einem Element weniger ist. Die Ausnahme von dieser Regel ist root („/“), der kein Elternteil hat. Auch genau wie Standarddateisysteme kann ein Znode nicht gelöscht werden, wenn er Kinder hat.

Zookeeper wurde entwickelt, um Koordinationsdaten zu speichern: Statusinformationen, Konfiguration, Standortinformationen usw.

Architektur von Zookeeper

Für einen zuverlässigen Zookeeper -Service sollten Sie Zookeeper in einem Cluster einsetzen, der als Ensemble bekannt ist. Solange ein Großteil des Ensembles abgelaufen ist, wird der Service verfügbar sein. Da Zookeeper eine Mehrheit benötigt, ist es am besten, eine ungerade Anzahl von Maschinen zu verwenden. Beispielsweise kann Zookeeper mit vier Maschinen nur den Fehler einer einzelnen Maschine verarbeiten. Wenn zwei Maschinen versagen, stellen die verbleibenden beiden Maschinen keine Mehrheit dar. Mit fünf Maschinen können Zookeeper jedoch den Ausfall von zwei Maschinen bewältigen.

Jede der Komponenten, die Teil der Rebsarchitektur ist, wurde unten erläutert.

  • Klient - Clients, einer der Knoten in unserem verteilten Anwendungscluster, greifen auf Informationen vom Server zu. Für ein bestimmtes Zeitintervall sendet jeder Client eine Nachricht an den Server, um den Abfindungen mitzuteilen, dass der Client am Leben ist.In ähnlicher Weise sendet der Server eine Bestätigung, wenn ein Client eine Verbindung herstellt. Wenn der angeschlossene Server keine Antwort gibt, leitet der Client die Nachricht automatisch auf einen anderen Server um.
  • Server - Der Server, einer der Knoten in unserem Zookeeper -Ensemble, bietet alle Dienste für Clients. Gibt dem Client die Bestätigung, mitzuteilen, dass der Server lebt.
  • Führer - Serverknoten, der eine automatische Wiederherstellung durchführt, wenn der angeschlossene Knoten fehlschlägt. Führungskräfte werden zum Service -Startup gewählt.
  • Anhänger - Serverknoten, der den Anweisungen der Führer folgt.

Konfigurieren Sie die Zookeeper -Hosts und fügen Sie Zookeeper -Benutzer hinzu

Vor der Installation der erforderlichen Zookeeper -Pakete für die Konfiguration konfigurieren wir die Hosts -Datei auf allen Ubuntu -Knoten. Danach erstellen wir Zookeeper -Benutzer über alle drei Knoten, da Zookeeper -Daemon ausgeführt werden muss Zookeeper Benutzer selbst.



Hier haben wir 3 Ubuntu 18 verwendet.04 Maschinen.

Zookeeper Node1 - 192.168.1.102 (Hostname - Node1) Zookeeper Node2 - 192.168.1.103 (Hostname - Node2) Zookeeper Node3 - 192.168.1.105 (Hostname - Node3) 

Bearbeiten die /etc/hosts Datei über alle drei Knoten über GEDIT oder Vim und machen Sie folgende Änderungen:

192.168.1.102 Node1 192.168.1.103 NODE2 192.168.1.105 Node3 
Kopieren

Überprüfen Sie nach dem Ändern der oben genannten Details in der Hosts -Datei die Konnektivität mit Ping zwischen allen Knoten.

Erstellen Sie jetzt das neue Zookeeper Benutzer und Gruppe mit dem Befehl:

# Adduser Zookeeper 

Installieren und konfigurieren Sie Oracle JDK

Laden Sie das Java -Archiv unter dem herunter und extrahieren Sie sie /opt Verzeichnis. Weitere Informationen finden Sie in der Installation von Java auf Ubuntu 18.04.

So setzen Sie den JDK 1.8 UPDATE 192 Als Standard -JVM werden wir die folgenden Befehle verwenden:

# Update-Alternative-Installieren/usr/bin/java java/opt/jdk1.8.0_192/bin/java 100 # Update-Alternative--install/usr/bin/javac javac/opt/jdk1.8.0_192/bin/javac 100 

Nach der Installation zur Überprüfung der Java wurde erfolgreich konfiguriert, führen Sie die folgenden Befehle aus:

# Update-Alternative-DISPLY JAVA # UPDATE-ALTERNIENSTEN--Display Javac 

Um die Java -Version zu überprüfen, führen Sie die folgenden Befehle aus:

# Java -Version 

Bei erfolgreicher Installation erhalten Sie die folgenden Informationen:

Java -Version "1.8.0_192 "Java (TM) SE -Laufzeitumgebung (Build 1.8.0_192-B12) Java Hotspot (TM) 64-Bit-Server VM (Build 25.192-B12, gemischter Modus) 


Konfigurieren und Einrichten des Zookeeper

Laden Sie das Zookeeper -Paket vom offiziellen Apache -Archiv in allen drei Ubuntu -Maschinen herunter und entpacken Sie sie wie unten gezeigt:

$ wget https: // www-us.Apache.org/dist/zookeeper/stabil/zookeeper-3.4.12.Teer.gz 
$ tar -xzvf zookeeper -3.4.12.Teer.gz 

Bearbeiten die bashrc Für den Zookeeper -Benutzer durch Einrichten der folgenden Zookeeper -Umgebungsvariablen.

exportieren zoo_log_dir =/var/log/zookeeper 

Quellen Sie die .Bashrc in der aktuellen Anmeldesitzung:

$ source ~/.bashrc 

Erstellen Sie nun das Verzeichnis Zookeeper unter /var/lib Ordner, der als Zookeeper -Datenverzeichnis dient und ein anderes erstellt Zookeeper Verzeichnis unter /var/log wo alle Zookeeper -Protokolle erfasst werden. Beide Verzeichnisbesitz müssen als Zookeeper geändert werden.

$ sudo mkdir/var/lib/zookeeper; CD /var /lib; sudo chown zookeeper: zookeeper zookeeper/$ sudo mkdir/var/log/zookeeper; CD /var /log; Sudo Chown Zookeeper: Zookeeper Zookeeper/ 

Erstellen Sie die Server -ID für das Ensemble. Jeder Zookeeper -Server sollte eine eindeutige Nummer in der meine ID Datei innerhalb des Ensembles und sollte einen Wert zwischen 1 und 255 haben.

In Node1

$ sudo sh -c "echo '1'>/var/lib/zookeeper/myid" 

In Node2

$ sudo sh -c "echo '2'>/var/lib/zookeeper/myid" 

In Node3

$ sudo sh -c "echo '3'>/var/lib/zookeeper/myid" 

Gehen Sie nun in den Conf -Ordner unter dem Zookeeper Home -Verzeichnis (Ort des Zookeeper -Verzeichnisses, nachdem das Archiv entpackt/extrahiert wurde).

$ CD/Home/Zookeeper/Zookeeper-3.4.13/conf/ 


zookeeper@node1: ~/zookeeper-3.4.13/conf $ ls -lrth insgesamt 16k-Rw-r-R-- 1 Zookeeper Zookeeper 922 Jun 29 21:04 Zoo_Sampel.CFG-RW-R-R-- 1 Zookeeper Zookeeper 535 Jun 29 21:04 Konfiguration.XSL-RW-R-R-- 1 Zookeeper Zookeeper 999 24. November 18:29 Zoo.CFG-RW-R-R-- 1 Zookeeper Zookeeper 2.2k 24. November 19:07 log4j.Eigenschaften 
Kopieren

Standardmäßig eine Beispiel -Konf -Datei mit Namen Zoo_Sample.CFG wird in vorhanden sein in Conf Verzeichnis. Sie müssen eine Kopie davon mit dem Namen machen Zoo.CFG Wie unten gezeigt und neu bearbeiten Zoo.CFG Wie in allen drei Ubuntu -Maschinen beschrieben.

$ CP Zoo_Sample.CFG Zoo.CFG 
$ ls -lrth/home/zookeeper/zookeeper -3.4.13/conf Total 16K -RW-R-R-- 1 Zookeeper Zookeeper 922 Jun 29 21:04 Zoo_Sample.CFG-RW-R-R-- 1 Zookeeper Zookeeper 535 Jun 29 21:04 Konfiguration.XSL-RW-R-R-- 1 Zookeeper Zookeeper 999 24. November 18:29 Zoo.CFG-RW-R-R-- 1 Zookeeper Zookeeper 2.2k 24. November 19:07 log4j.Eigenschaften 
Kopieren
$ vim/home/zookeeper/zookeeper-3.4.13/conf/zoo.CFG 
Datadir =/var/lib/zookeeper Server.1 = Node1: 2888: 3888 Server.2 = NODE2: 2888: 3888 Server.3 = Node3: 2888: 3888 
Kopieren

Zookeeper -Konfigurationsänderungen.



Tun Sie nun die folgenden Änderungen in log4.Eigenschaften Datei wie folgt.

$ vim/home/zookeeper/zookeeper-3.4.13/conf/log4j.Eigenschaften 
Zookeeper.Protokoll.Dir =/var/log/zookeeper Zookeeper.Tracelog.Dir =/var/log/zookeeper log4j.RootLogger = Info, Konsole, Rollingfile 
Kopieren

Zookeeper log4j -Konfiguration ändert sich.

Nach der Konfiguration wurde in Zoo.CFG Datei In allen drei Knoten starten Sie Zookeeper in allen drei Knoten nacheinander und verwenden Sie den folgenden Befehl:

$/home/zookeeper/zookeeper-3.4.13/bin/zkserver.SH Start 

Zookeeper -Dienst starten mit allen drei Knoten.

Die Protokolldatei wird in erstellt in /var/log/zookeeper von Zookeeper benannt Zookeeper.Protokoll, Heck die Datei, um Protokolle für Fehler anzuzeigen.

$ tail -f/var/log/zookeeper/zookeeper.Protokoll 


Überprüfen Sie den Zookeeper -Cluster und das Ensemble

Im Zookeeper -Ensemble von drei Servern befindet sich einer im Leader -Modus und zwei andere werden im Follower -Modus sein. Sie können den Status überprüfen, indem Sie die folgenden Befehle ausführen.

$/home/zookeeper/zookeeper-3.4.13/bin/zkserver.SH Status 

Zookeeper -Service -Statusprüfung.

$ echo stat | NC Node1 2181 

Listet kurze Details für den Server und die angeschlossenen Clients auf.

$ echo mntr | NC Node1 2181 

Zookeeper -Liste von Variablen für die Cluster -Gesundheitsüberwachung.



$ echo srvr | NC Localhost 2181 

Listet vollständige Details für den Zookeeper -Server auf.

Wenn Sie den Znode überprüfen und sehen müssen, können Sie eine Verbindung herstellen, indem Sie den folgenden Befehl auf einem der Zookeeper -Knoten verwenden:

$/home/zookeeper/zookeeper-3.4.13/bin/zkcli.sh -server 'Hostname -f': 2181 

Stellen Sie eine Verbindung zum Zookeeper -Datenknoten her und listet den Inhalt auf.

Abschluss

Es ist zu einer der meisten bevorzugten Wahl für die Erstellung von hoch verfügbaren verteilten Systemen im Maßstab. Das Zookeeper -Projekt ist eines der erfolgreichsten Projekte der Apache Foundation. Es hat eine breite Akzeptanz von Top -Unternehmen erhalten und zahlreiche Vorteile im Zusammenhang mit Big Data bietet.

Apache Zookeeper bietet den Unternehmen eine solide Basis, um verschiedene Big -Data -Tools zu implementieren, und ermöglichte es den Unternehmen, reibungslos in der Big Data World zu funktionieren. Die Fähigkeit, mehrere Vorteile gleichzeitig zu bieten, hat es zu einer der meisten bevorzugten Anwendungen in großem Maßstab gemacht.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • So erstellen Sie einen Kubernetes -Cluster
  • So installieren Sie Kubernetes auf Ubuntu 20.04 fokale Fossa Linux
  • So installieren Sie Kubernetes auf Ubuntu 22.04 Jammy Quallen…
  • Oracle Java Installation auf Ubuntu 20.04 fokale Fossa Linux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Linux: Java installieren
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Oracle Linux gegen Red Hat (Rhel)
  • Mastering -Bash -Skriptschleifen beherrschen