ZooKeeper è un progetto software di Apache Software Foundation che fornisce un servizio di dati condivisi ad alte prestazioni utilizzato per creare applicazioni distribuite. Viene utilizzato da un cluster per mantenere i dati condivisi con solide tecniche di sincronizzazione. Fornisce una semplice interfaccia per la gestione delle informazioni di configurazione, denominazione, sincronizzazione distribuita e fornitura di servizi di gruppo.
In questo tutorial, ti mostreremo come installare Apache ZooKeeper su un server Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Una password di root è configurata sul server.
Installa Java
Apache ZooKeeper è scritto in Java, quindi dovrai installare Java nel tuo sistema. Puoi installarlo con il seguente comando:
apt-get install default-jdk -y
Dopo aver installato Java, verificare la versione installata di Java con il seguente comando:
java --version
Dovresti ottenere il seguente output:
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)
Installa Zookeeper
Prima di installare Apache zookeeper, dovrai creare un nuovo utente per zookeeper. Puoi crearlo con il seguente comando:
useradd zookeeper -m
Quindi, imposta la password per questo utente e aggiungilo al gruppo sudo con il seguente comando:
usermod --shell /bin/bash zookeeper
passwd zookeeper
usermod -aG sudo zookeeper
Quindi, crea una directory di dati per zookeeper e cambia la proprietà di questa directory:
mkdir /zookeeper
chown -R zookeeper:zookeeper /zookeeper
Successivamente, dovrai scaricare l'ultima versione di zookeeper nella directory /opt. Puoi scaricarlo con il seguente comando:
cd /opt
wget https://mirrors.estointernet.in/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
Una volta completato il download, estrai il file scaricato con il seguente comando:
tar -xvzf apache-zookeeper-3.6.2-bin.tar.gz
Quindi, rinomina la directory estratta in zookeeper con il seguente comando:
mv apache-zookeeper-3.6.2-bin zookeeper
Quindi, cambia la proprietà della directory di zookeeper con il seguente comando:
chown -R zookeeper:zookeeper /opt/zookeeper
Configura ZooKeeper in modalità standalone
Successivamente, dovrai creare un file di configurazione ZooKeeper per configurare ZooKeeper in modalità standalone. Puoi crearlo con il seguente comando:
nano /opt/zookeeper/conf/zoo.cfg
Aggiungi le seguenti righe:
tickTime=2500 dataDir=/zookeeper clientPort=2181 maxClientCnxns=80
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio ZooKeeper con il seguente comando:
cd /opt/zookeeper
bin/zkServer.sh start
Dovresti ottenere il seguente output:
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
Per impostazione predefinita, ZooKeeper è in ascolto sulla porta 2181. Puoi verificarlo con il seguente comando:
ss -ntpl | grep 2181
Dovresti ottenere il seguente output:
LISTEN 0 50 *:2181 *:* users:(("java",pid=12749,fd=53))
Ora puoi connetterti al server locale ZooKeeper con il seguente comando:
bin/zkCli.sh -server 127.0.0.1:2181
Una volta connesso, dovresti ottenere il seguente output:
WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 127.0.0.1:2181(CONNECTED) 0]
Ora esci dalla sessione con il seguente comando:
quit
Quindi, arresta il servizio ZooKeeper con il seguente comando:
bin/zkServer.sh stop
Dovresti vedere il seguente output:
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
Crea un file di servizio Systemd per ZooKeeper
Successivamente, dovrai creare un file di servizio systemd per gestire il servizio ZooKeeper. Puoi crearlo con il seguente comando:
nano /etc/systemd/system/zookeeper.service
Aggiungi le seguenti righe:
[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
Salva e chiudi il file, quindi ricarica il demone systemd per applicare le modifiche alla configurazione:
systemctl daemon-reload
Quindi, cambia la proprietà di ZooKeeper e della directory dei dati con il seguente comando:
chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /zookeeper
Quindi, avvia il servizio ZooKeeper e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start zookeeper
systemctl enable zookeeper
Ora puoi controllare lo stato del servizio ZooKeeper con il seguente comando:
systemctl status zookeeper
Dovresti ottenere il seguente output:
? 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.
Conclusione
Congratulazioni! hai installato e configurato con successo ZooKeeper sul server Ubuntu 20.04. Ora puoi creare e distribuire facilmente l'applicazione distribuita con ZooKeeper.