Wie installiert man Apache ZooKeeper unter Ubuntu 20.04

ZooKeeper ist ein Softwareprojekt der Apache Software Foundation, das einen hochleistungsfähigen gemeinsamen Datendienst für die Erstellung verteilter Anwendungen bereitstellt. Er wird von einem Cluster verwendet, um gemeinsam genutzte Daten mit robusten Synchronisierungstechniken zu pflegen. Er bietet eine einfache Schnittstelle für die Verwaltung von Konfigurationsinformationen, die Benennung, die verteilte Synchronisation und die Bereitstellung von Gruppendiensten.

In diesem Tutorial zeigen wir Ihnen, wie Sie Apache ZooKeeper auf einem Ubuntu 20.04-Server installieren.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Java installieren

Apache ZooKeeper ist in Java geschrieben, daher müssen Sie Java auf Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

apt-get install default-jdk -y

Nachdem Sie Java installiert haben, überprüfen Sie die installierte Version von Java mit dem folgenden Befehl:

java --version

Sie sollten die folgende Ausgabe erhalten:

openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

Zookeeper installieren

Bevor Sie Apache zookeeper installieren, müssen Sie einen neuen Benutzer für zookeeper anlegen. Sie können ihn mit dem folgenden Befehl erstellen:

useradd zookeeper -m

Legen Sie dann das Kennwort für diesen Benutzer fest und fügen Sie es mit folgendem Befehl zur sudo-Gruppe hinzu:

usermod --shell /bin/bash zookeeper
passwd zookeeper
usermod -aG sudo zookeeper

Als nächstes erstellen Sie ein Datenverzeichnis für den Zoowärter und ändern den Eigentümer dieses Verzeichnisses:

mkdir /zookeeper
chown -R zookeeper:zookeeper /zookeeper

Als nächstes müssen Sie die neueste Version des Zoowärters in das Verzeichnis /opt herunterladen. Sie können sie mit dem folgenden Befehl herunterladen:

cd /opt
wget https://mirrors.estointernet.in/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf apache-zookeeper-3.6.2-bin.tar.gz

Als nächstes benennen Sie das extrahierte Verzeichnis mit folgendem Befehl in ZooKeeper um:

mv apache-zookeeper-3.6.2-bin zookeeper

Als Nächstes ändern Sie den Eigentümer des Zookeeper-Verzeichnisses mit folgendem Befehl: Apache ZooKeeper ist in Java geschrieben:

chown -R zookeeper:zookeeper /opt/zookeeper

Konfigurieren Sie ZooKeeper im Standalone-Modus

Als nächstes müssen Sie eine ZooKeeper-Konfigurationsdatei erstellen, um ZooKeeper im Standalone-Modus einzurichten. Sie können sie mit dem folgenden Befehl erstellen:

nano /opt/zookeeper/conf/zoo.cfg

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den ZooKeeper-Dienst mit dem folgenden Befehl:

cd /opt/zookeeper
bin/zkServer.sh start

Sie sollten die folgende Ausgabe erhalten:

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

Standardmäßig lauscht ZooKeeper auf Port 2181. Sie können dies mit dem folgenden Befehl überprüfen:

ss -ntpl | grep 2181

Sie sollten die folgende Ausgabe erhalten:

LISTEN    0         50                       *:2181                   *:*        users:(("java",pid=12749,fd=53)) 

Sie können sich nun mit folgendem Befehl mit dem lokalen ZooKeeper-Server verbinden:

bin/zkCli.sh -server 127.0.0.1:2181

Sobald die Verbindung hergestellt ist, sollten Sie die folgende Ausgabe erhalten:

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0] 

Beenden Sie nun die Sitzung mit dem folgenden Befehl:

quit

Stoppen Sie dann den ZooKeeper-Dienst mit folgendem Befehl:

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 Sie eine Systemdienstdatei für ZooKeeper

Als nächstes müssen Sie eine Systemdatei erstellen, um den ZooKeeper-Service zu verwalten. Diese können Sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/zookeeper.service

Fügen Sie 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 und laden Sie dann den systemd-Dämon neu, um die Konfigurationsänderungen anzuwenden:

systemctl daemon-reload

Als nächstes ändern Sie den Eigentümer des ZooKeeper- und Datenverzeichnisses mit dem folgenden Befehl:

chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /zookeeper

Als nächstes starten Sie den ZooKeeper-Dienst und schalten ihn beim Systemneustart mit folgendem Befehl ein:

systemctl start zookeeper
systemctl enable zookeeper

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

systemctl status zookeeper

Sie sollten folgende Ausgabe erhalten: Sie sollten folgende Ausgabe erhalten:

? zookeeper.service - Zookeeper Daemon
     Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-09-27 06:43:28 UTC; 8s ago
       Docs: http://zookeeper.apache.org
    Process: 13915 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)
   Main PID: 13946 (java)
      Tasks: 37 (limit: 4691)
     Memory: 50.6M
     CGroup: /system.slice/zookeeper.service
             ??13946 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-ubuntu2004.log -Dzook>

Sep 27 06:43:27 ubuntu2004 systemd[1]: Starting Zookeeper Daemon...
Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: /usr/bin/java
Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: ZooKeeper JMX enabled by default
Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: Using config: /opt/zookeeper/conf/zoo.cfg
Sep 27 06:43:28 ubuntu2004 zkServer.sh[13915]: Starting zookeeper ... STARTED
Sep 27 06:43:28 ubuntu2004 systemd[1]: Started Zookeeper Daemon.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben ZooKeeper erfolgreich auf dem Ubuntu 20.04 Server installiert und konfiguriert. Jetzt können Sie die verteilte Anwendung mit ZooKeeper einfach erstellen und bereitstellen.

Das könnte dich auch interessieren …