Apache Zookeeper je bezplatná služba s otevřeným zdrojovým kódem pro distribuované systémy, která vám pomůže spravovat velkou sadu hostitelů. Jedná se o centralizovanou službu používanou pro údržbu konfiguračních informací, pojmenování a skupinových služeb. Je napsán v Javě a umožňuje vývojářům soustředit se na vytváření softwarových funkcí bez obav o distribuovanou povahu aplikace. Apache ZooKeeper se nejčastěji používá v pracovních zátěžích „dominantních čtení“, kde je čtení mnohem běžnější než zápis. Dodává se s bohatou sadou funkcí včetně synchronizace, objednaných zpráv, serializace, spolehlivosti, atomicity, rychlého zpracování a mnoha dalších. Má zamykací a synchronizační mechanismus, který vám pomáhá při automatické obnově selhání při připojování dalších distribuovaných aplikací. Projekt Zookeeper je jedním z nejúspěšnějších projektů nadace Apache. Mnoho společností přijalo Zookeeper pro vytváření vysoce dostupných distribuovaných systémů ve velkém měřítku.
V tomto tutoriálu vám ukážeme, jak nastavit jednouzlový cluster Apache Zookeeper na serveru Debian 10.
Předpoklady
- Server se systémem Debian 10 s 2 GB RAM.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Začínáme
Před spuštěním se doporučuje aktualizovat server na nejnovější verzi. Můžete jej aktualizovat pomocí následujícího příkazu:
apt-get update -y
apt-get upgrade -y
Jakmile je váš server aktualizován, restartujte jej, aby se změny implementovaly.
Instalovat Javu
Apache Zookeeper je napsán v jazyce Java. Budete tedy muset do svého systému nainstalovat Javu. Ve výchozím nastavení je ve výchozím úložišti Debian 10 k dispozici nejnovější verze Javy. Můžete jej nainstalovat spuštěním následujícího příkazu:
apt-get install default-jdk -y
Po instalaci Javy ověřte nainstalovanou verzi Javy pomocí následujícího příkazu:
java --version
Měli byste získat následující výstup:
openjdk 11.0.5 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-1deb10u1) OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-1deb10u1, mixed mode, sharing)
Jakmile budete hotovi, můžete přistoupit k vytvoření systémového uživatele pro Zookeeper.
Vytvoření systémového uživatele pro Zookeeper
Pro spuštění služby Zookeeper je dobré vytvořit vyhrazeného uživatele. Tím se zlepší vaše zabezpečení a správa.
Nejprve spusťte následující příkaz k vytvoření uživatele zookeeper s domovským adresářem:
useradd zookeeper -m
Dále nastavte výchozí shell pro uživatele zookeeper pomocí následujícího příkazu:
usermod --shell /bin/bash zookeeper
Dále nastavte heslo pro uživatele zookeeper pomocí následujícího příkazu:
passwd zookeeper
Dále přidejte uživatele zookeeper do skupiny sudo:
usermod -aG sudo zookeeper
V tomto okamžiku jste vytvořili a nakonfigurovali uživatele Zookeeper. Nyní můžete přistoupit ke stažení Zookeeper.
Stáhnout Zookeeper
Nejprve si budete muset stáhnout nejnovější verzi Apache Zookeeper z jeho oficiálních stránek. V době psaní tohoto článku je nejnovější verze Apache Zookeeper 3.5.6.
Chcete-li jej stáhnout, změňte adresář na /opt a spusťte následující příkaz:
cd /opt
wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.5.6-bin.tar.gz
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
tar -xvzf apache-zookeeper-3.5.6-bin.tar.gz
Dále přejmenujte extrahovaný adresář na zookeeper a udělte správná oprávnění:
mv apache-zookeeper-3.5.6-bin zookeeper
chown -R zookeeper:zookeeper /opt/zookeeper
Dále budete muset vytvořit datový adresář pro Zookeeper, kde budou uložena všechna konfigurační a stavová data. Můžete vytvořit v místním souborovém systému nebo vzdáleném souborovém systému podle vašich potřeb.
Datový adresář můžete vytvořit pomocí následujícího příkazu:
mkdir -p /data/zookeeper
Dále změňte vlastnictví datového adresáře na uživatele zookeeper:
chown -R zookeeper:zookeeper /data/zookeeper
V tomto okamžiku jste si stáhli Zookeeper a vytvořili pro něj datový adresář. Nyní můžete pokračovat v konfiguraci Zookeeper.
Konfigurace Zookeeper
Zookeeper všechny konfigurační soubory jsou umístěny v adresáři /opt/zookeeper/conf/. Konfigurační soubor Zookeeper můžete vytvořit v adresáři /opt/zookeeper/conf/ pomocí následujícího příkazu:
nano /opt/zookeeper/conf/zoo.cfg
Přidejte následující řádky:
tickTime=2500 dataDir=/data/zookeeper clientPort=2181 maxClientCnxns=80
Po dokončení uložte a zavřete soubor.
Kde:
- tickTime :Tato možnost nastavuje délku zaškrtnutí v milisekundách.
- dataDir :Určete datový adresář pro ukládání dat Zookeeper.
- clientPort :Zadejte port používaný k naslouchání připojení klientů.
- maxClientCnxns :Používá se k omezení maximálního počtu klientských připojení.
Poznámka :Výše uvedené parametry jsou pro vývoj a testování. Můžete je změnit podle potřeby.
V tomto okamžiku jste nakonfigurovali Zookeeper. Nyní můžete být připraveni ke spuštění serveru Zookeeper.
Spustit a otestovat server Zookeeper
Server Zookeeper můžete spustit pomocí následujícího příkazu:
/opt/zookeeper/bin/zkServer.sh start
Měli byste získat následující výstup:
/usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
Dále se můžete připojit k serveru Zookeeper na portu 2181 pomocí následujícího příkazu:
/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Po připojení byste měli vidět následující výstup:
[zk: 127.0.0.1:2181(CONNECTED) 0]
Dále spusťte příkaz help a získejte seznam příkazů, které můžete spustit z klienta.
[zk: 127.0.0.1:2181(CONNECTED) 0] help
Měli byste vidět následující výstup:
ZooKeeper -server host:port cmd args addauth scheme auth close config [-c] [-w] [-s] connect host:port create [-s] [-e] [-c] [-t ttl] path [data] [acl] delete [-v version] path deleteall path delquota [-n|-b] path get [-s] [-w] path getAcl [-s] path history listquota path ls [-s] [-w] [-R] path ls2 path [watch] printwatches on|off quit reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*] redo cmdno removewatches path [-c|-d|-a] [-l] rmr path set [-s] [-v version] path data setAcl [-s] [-v version] [-R] path acl setquota -n|-b val path stat [-w] path sync path
Po testování ukončete relaci klienta pomocí příkazu quit:
[zk: 127.0.0.1:2181(CONNECTED) 0] quit
Nyní můžete zastavit službu Zookeeper pomocí následujícího příkazu:
/opt/zookeeper/bin/zkServer.sh stop
Měli byste vidět následující příkaz:
/usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
V tomto okamžiku jste úspěšně spustili a otestovali server Zookeeper.
Vytvoření souboru Systemd Service pro Zookeeper
Dále budete muset vytvořit soubor služby systemd pro správu služby Zookeeper pomocí systemd.
Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/systemd/system/zookeeper.service
Přidejte následující řádky:
[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
Po dokončení uložte a zavřete soubor. Poté znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Dále spusťte službu Zookeeper a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start zookeeper
systemctl enable zookeeper
Nyní můžete ověřit stav Zookeeper pomocí následujícího příkazu:
systemctl status zookeeper
Měli byste vidět následující výstup:
? zookeeper.service - Zookeeper Daemon Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2019-12-29 15:12:39 UTC; 8min ago Docs: http://zookeeper.apache.org Process: 9229 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS) Main PID: 9245 (java) Tasks: 29 (limit: 2359) Memory: 49.7M CGroup: /system.slice/zookeeper.service ??9245 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-debian10.log -Dzookeeper. Dec 29 15:12:38 debian10 systemd[1]: Starting Zookeeper Daemon... Dec 29 15:12:38 debian10 zkServer.sh[9229]: /usr/bin/java Dec 29 15:12:38 debian10 zkServer.sh[9229]: ZooKeeper JMX enabled by default Dec 29 15:12:38 debian10 zkServer.sh[9229]: Using config: /opt/zookeeper/conf/zoo.cfg Dec 29 15:12:39 debian10 zkServer.sh[9229]: Starting zookeeper ... STARTED Dec 29 15:12:39 debian10 systemd[1]: Started Zookeeper Daemon.
Nyní můžete službu Zookeeper snadno spravovat pomocí systemd.
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali cluster Zookeeper s jedním uzlem na serveru Debian 10. Toto nastavení je velmi užitečné pro vývojová a testovací prostředí. Doufám, že nyní máte dostatek znalostí k nastavení jednoho uzlu Zookeeper clusteru. Pokud máte nějaké dotazy, neváhejte se mě zeptat.