So richten Sie den Apache ZooKeeper Cluster auf Ubuntu 18.04 LTS ein

Zookeeper ist ein zentralisierter Dienst zur Verwaltung von Konfigurationsinformationen, Benennung, verteilter Synchronisierung und Bereitstellung von Gruppendiensten, der als Open-Source-Software veröffentlicht wird. Es ist in einer Java-Sprache geschrieben, die es Ihnen ermöglicht, sich auf die Kernanwendungslogik zu konzentrieren, ohne sich um die verteilte Natur der Anwendung zu kümmern. Die Architektur von ZooKeeper unterstützt Hochverfügbarkeit durch redundante Dienste. Zookeeper ermöglicht es verteilten Prozessen, sich über einen gemeinsamen hierarchischen Namensraum von Datenregistern aufeinander abzustimmen. Zookeeper bietet seinen Kunden auch einen hohen Durchsatz, hohe Verfügbarkeit, geringe Latenzzeiten und einen streng kontrollierten Zugriff auf die Znodes. Zookeeper wurde speziell entwickelt, um Statusinformationen, Konfigurationen, Standortinformationen und mehr zu speichern. ZooKeeper bietet viele Funktionen wie zuverlässiges System, einfache Architektur, schnelle Verarbeitung, Skalierbarkeit und vieles mehr.

In diesem Tutorial erfahren wir, wie man einen einzelnen Knoten Apache ZooKeeper Cluster auf Ubuntu 18.04 einrichtet.

Anforderungen

  • Ein Server mit Ubuntu 18.04.
  • Auf deinem Server wird ein Root-Passwort eingerichtet.

Erste Schritte

Zuerst müssen Sie Ihr System auf die neueste Version aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

apt-get update -y
 apt-get upgrade -y

Sobald das System aktualisiert ist, starten Sie Ihr System neu, um alle Änderungen zu übernehmen.

Java installieren

Zookeeper ist in Java geschrieben. Daher müssen Sie Java auf Ihrem System installieren. Standardmäßig ist die neueste Version von Java nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Fügen Sie also das Java-Repository mit dem folgenden Befehl hinzu:

add-apt-repository ppa:linuxuprising/java

Als nächstes aktualisieren Sie das Repository und installieren Java mit dem folgenden Befehl:

apt-get update -y
 apt-get install oracle-java11-set-default

Nachdem das Java installiert wurde, können Sie die Java-Version mit dem folgenden Befehl überprüfen:

java --version

Sie sollten die folgende Ausgabe sehen:

java 11.0.2 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Erstellen eines ZooKeeper-Benutzers

Als nächstes müssen Sie einen Zookeeper-Benutzer erstellen, um den Zookeeper-Service auszuführen.

Erstellen Sie zunächst einen Zookeeper-Benutzer mit dem folgenden Befehl:

useradd zookeeper -m
 usermod --shell /bin/bash zookeeper

Als nächstes setzen Sie ein Passwort mit dem folgenden Befehl:

passwd zookeeper

Als nächstes fügen Sie den Zookeeper-Benutzer zur sudo-Gruppe hinzu, damit er Befehle in einem privilegierten Modus ausführen kann:

usermod -aG sudo zookeeper

Nachdem Sie einen Benutzer angelegt haben, können Sie ZooKeeper installieren.

ZooKeeper installieren

ZooKeeper speichert alle Konfigurations- und Zustandsdaten auf der Festplatte. Sie müssen also eine Verzeichnisstruktur für ZooKeeper mit dem folgenden Befehl erstellen:

mkdir -p /data/zookeeper

Als nächstes gibst du dem Verzeichnis /data mit dem folgenden Befehl den richtigen Besitzer:

chown -R zookeeper:zookeeper /data/zookeeper

Wechseln Sie anschließend in das Verzeichnis /opt und laden Sie die neueste Version von ZooKeeper mit dem folgenden Befehl herunter:

cd /opt
 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

Als nächstes extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf zookeeper-3.4.9.tar.gz

Als nächstes benennen Sie die extrahierte Binärdatei mit dem folgenden Befehl um:

mv zookeeper-3.4.9 zookeeper

Als nächstes geben Sie dem ZooKeeper-Benutzer mit dem folgenden Befehl das Eigentum:

chown -R zookeeper:zookeeper /opt/zookeeper

ZooKeeper konfigurieren

Als nächstes müssen Sie eine Konfigurationsdatei für ZooKeeper erstellen. Du kannst es mit dem folgenden Befehl tun:

nano /opt/zookeeper/conf/zoo.cfg

Füge die folgenden Zeilen hinzu:

tickTime=2500
dataDir=/data/zookeeper
clientPort=2181
maxClientCnxns=80

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Starten Sie anschließend den ZooKeeper-Dienst mit dem folgenden Befehl:

cd /opt/zookeeper
 bin/zkServer.sh start

Sie sollten die folgende Ausgabe sehen:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

Mit dem folgenden Befehl können Sie sich mit dem lokalen ZooKeeper-Server verbinden:

bin/zkCli.sh -server 127.0.0.1:2181

Sobald Sie sich erfolgreich verbunden haben, sollten Sie die folgende Ausgabe sehen:

[zk: 127.0.0.1:2181(CONNECTED) 1] 

Geben Sie nun help auf der Eingabeaufforderung ein, Sie sollten die Liste der Befehle sehen, die Sie vom Client aus ausführen können.

help
ZooKeeper -server host:port cmd args
	stat path [watch]
	set path data [version]
	ls path [watch]
	delquota [-n|-b] path
	ls2 path [watch]
	setAcl path acl
	setquota -n|-b val path
	history 
	redo cmdno
	printwatches on|off
	delete path [version]
	sync path
	listquota path
	rmr path
	get path [watch]
	create [-s] [-e] path data acl
	addauth scheme auth
	quit 
	getAcl path
	close 
	connect host:port

Geben Sie nun quit ein, um die verbundene Sitzung zu beenden.

Sie können den ZooKeeper mit folgendem Befehl stoppen:

bin/zkServer.sh stop

Sie sollten die folgende Ausgabe sehen:

ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

Erstellen einer Systemd Servicedatei für ZooKeeper

Als nächstes müssen Sie eine Systemdatei erstellen, um den ZooKeeper-Dienst zu verwalten. Du kannst es mit dem folgenden Befehl tun:

nano /etc/systemd/system/zookeeper.service

Füge die folgenden Zeilen hinzu:

[Unit]
Description=Zookeeper Daemon
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]    
Type=forking
WorkingDirectory=/opt/zookeeper
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
TimeoutSec=30
Restart=on-failure

[Install]
WantedBy=default.target

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als nächstes laden Sie den Systemdämon neu, starten den ZooKeeper-Dienst und ermöglichen ihm, mit dem folgenden Befehl beim Booten zu starten:

systemctl daemon-reload
systemctl start zookeeper
 systemctl enable zookeeper

Sie können den Status des ZooKeeper-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status zookeeper

Sie sollten die folgende Ausgabe sehen:

? zookeeper.service - Zookeeper Daemon
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-06 15:03:01 UTC; 5s ago
     Docs: http://zookeeper.apache.org
  Process: 3909 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)
 Main PID: 3926 (java)
    Tasks: 17 (limit: 1113)
   CGroup: /system.slice/zookeeper.service
           ??3926 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/..

Mar 06 15:03:00 ubuntu1804 systemd[1]: Starting Zookeeper Daemon...
Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: ZooKeeper JMX enabled by default
Mar 06 15:03:00 ubuntu1804 zkServer.sh[3909]: Using config: /opt/zookeeper/conf/zoo.cfg
Mar 06 15:03:01 ubuntu1804 zkServer.sh[3909]: Starting zookeeper ... STARTED
Mar 06 15:03:01 ubuntu1804 systemd[1]: Started Zookeeper Daemon.

Herzlichen Glückwunsch! Sie haben ZooKeeper Single Node Cluster auf dem Ubuntu 18.04 Server erfolgreich installiert und konfiguriert. Sie können nun ZooKeeper-Cluster mit mehreren Knoten für die Produktion bereitstellen. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Das könnte Dich auch interessieren …