Úvod
ZooKeeper je projekt Apache Software Foundation navržený tak, aby zjednodušil monitorování a správu skupinových služeb. Používá jednoduché rozhraní pro svou centralizovanou koordinační službu, která spravuje konfiguraci, informace, pojmenování, distribuovanou synchronizaci a zřizování.
V tomto tutoriálu se dozvíte, jak nainstalovat a nastavit Apache ZooKeeper na Ubuntu 18.04 nebo 20.04.
Předpoklady
- Systém Linux se systémem Ubuntu 20.04 nebo 18.04
- Přístup k oknu terminálu/příkazovému řádku (Vyhledat > Terminál )
- Uživatelský účet s sudo nebo root privilegia
Instalace Apache ZooKeeper na Ubuntu
Krok 1:Instalace Java
ZooKeeper je napsán v Javě a vyžaduje, aby tento programovací jazyk fungoval. Chcete-li zkontrolovat, zda je Java již nainstalována, spusťte příkaz:
java --version
Pokud výstup zobrazuje běžící verzi Java, můžete přejít k dalšímu kroku. Pokud systém říká, že no such file or directory
, musíte si nainstalovat Javu, než přejdete na ZooKeeper.
Pro Ubuntu jsou k dispozici různé open-source balíčky Java. Najděte ten, který je pro vás nejlepší, a jeho instalační průvodce v Jak nainstalovat Java na Ubuntu. Pokyny platí pro Ubuntu 18.04 a Ubuntu 20.04.
Krok 2:Vytvoření uživatele pro ZooKeeper
1. Vytvořte samostatného uživatele pro službu ZooKeeper zadáním:
useradd zookeeper -m
-m
flag vytvoří domovský adresář pro uživatele. V tomto případě to bude /home/zookeeper
. Chcete-li uživatele pojmenovat jinak, nahraďte zookeeper
se jménem dle vašeho výběru.
2. Dále nastavte bash
jako výchozí shell pro nového uživatele s příkazem:
usermod --shell /bin/bash zookeeper
3. Nastavte heslo pro uživatele:
passwd zookeeper
Zadejte a znovu zadejte silné heslo pro uživatele ZooKeeper.
4. Poté přidejte uživatele do skupiny sudoers, aby měl oprávnění sudo:
usermod -aG sudo zookeeper
5. Zaškrtnutím ověřte, že uživatel je nyní superuživatel, a to uvedením účtů ve skupině sudoers:
sudo getent group sudo
Výstup by měl zobrazovat uživatele, kterého jste vytvořili.
Krok 3:Vytvoření datového adresáře ZooKeeper
Před instalací ZooKeeperu vytvořte adresářovou strukturu, kam bude moci ukládat konfigurační a stavová data (na místní disk nebo vzdálené úložiště).
Chcete-li uložit data na místním počítači, nejprve vytvořte nový adresář ZooKeeper spuštěním:
sudo mkdir -p /data/zookeeper
Poté přidělte uživateli ZooKeeper vlastnictví tohoto adresáře:
chown -R zookeeper:zookeeper /data/zookeeper
Krok 4:Stažení a instalace ZooKeeper
1. Otevřete webový prohlížeč podle svého výběru a přejděte na stránku stahování Apache ZooKeeper. Nejnovější stabilní verze se zobrazí v horní části stránky. Kliknutím na verzi, kterou chcete nainstalovat, otevřete zrcadla stahování Apache.
2. Zkopírujte adresu HTTP pro navrhovaný zrcadlový web.
3. Vraťte se na příkazový řádek a přejděte na /opt
adresář:
cd /opt
4. Použijte wget
příkaz ke stažení souboru .tar soubor. Vložte odkaz zkopírovaný z oficiální webové stránky Apache:
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
5. Rozbalte soubor spuštěním:
sudo tar -xvf apache-zookeeper-3.6.1-bin.tar.gz
6. Přejmenujte extrahovaný soubor na zookeeper
pomocí příkazu:
mv apache-zookeeper-3.6.1-bin zookeeper
7. Poskytněte uživateli zookeeper vlastnictví tohoto souboru spuštěním:
chown -R zookeeper:zookeeper /opt/zookeeper
Krok 5:Konfigurace ZooKeeper v samostatném režimu
Dalším krokem je vytvoření konfiguračního souboru pro ZooKeeper. Níže uvedená konfigurace nastavuje ZooKeeper v samostatném režimu (používá se pro vývoj a testování). Pro produkční prostředí musíte ZooKeeper spustit v režimu replikace.
Chcete-li nakonfigurovat ZooKeeper v samostatném režimu, vytvořte nový zoo.cfg soubor v zookeeper adresář:
sudo nano /opt/zookeeper/conf/zoo.cfg
Přidejte následující řádky:
tickTime = 2000
dataDir = /data/zookeeper
clientPort = 2181
initLimit = 5
syncLimit = 2
Uložit a ukončit textový editor.
Mějte na paměti, že se jedná o základní konfigurační nastavení pro cluster s jedním uzlem. Soubor se může lišit podle vašich potřeb. Výše uvedené řádky obsahují následující:
tickTime
:Počet milisekund každého tiknutí.dataDir
:Adresář, kde jsou uloženy snímky databáze v paměti a protokol transakcí pro aktualizace.clientPort
:Port naslouchající připojení klientů.initLimit
:Počet tiků, které může trvat počáteční fáze synchronizace.syncLimit
:Počet zatržení, které může projít mezi odesláním požadavku a obdržením potvrzení.
Krok 6:Spuštění služby ZooKeeper
Nyní můžete spustit službu ZooKeeper. Spusťte následující příkaz uvnitř /opt adresář. Pokud jste opustili adresář, přejděte v něm pomocí cd /opt
.
Pro spuštění služby ZooKeeper použijte příkaz:
sudo bin/zkServer.sh start
Výstup by měl zobrazovat, že ZooKeeper ZAČAL .
Krok 7:Připojení k serveru ZooKeeper
Po spuštění služby se můžete připojit k serveru ZooKeeper. V této příručce je to místní server.
Připojte se k ZooKeeper příkazem:
bin/zkCli.sh -server 127.0.0.1:2181
Počkejte, až výstup otevře nový zk
výzva, která by měla potvrdit, že jste PŘIPOJENI .
Chcete-li zobrazit seznam dostupných příkazů, spusťte v novém příkazovém řádku následující příkaz:
help
Chcete-li ukončit relaci , zadejte:
quit
Chcete-li zastavit službu ZooKeeper , spusťte příkaz:
bin/zkServer.sh stop
Krok 8:Vytvoření souboru systémové služby
Nakonec musíte vytvořit soubor služby pro správu ZooKeeper.
1. Vytvořte nový zookeeper.service soubor v textovém editoru dle vašeho výběru:
sudo nano /etc/systemd/system/zookeeper.service
2. Do souboru vložte následující obsah:
[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
3. Uložte a ukončete soubor.
4. Znovu načtěte službu systemd spuštěním:
systemctl daemon-reload
5. Poté spusťte službu ZooKeeper a povolte její spuštění při spouštění:
systemctl start zookeeper
systemctl enable zookeeper
6. Pomocí příkazu:
ověřte, zda je služba v provozu a běžísystemctl status zookeeper
Měli byste vidět, že ZooKeeper je aktivní (běžící) .
Konfigurace Replicated ZooKeeper
Produkční prostředí vyžaduje nastavení replikovaného clusteru uzlů ZooKeeper.
Jakmile nainstalujete Javu, vytvoříte uživatele ZooKeeper a stáhnete binární balíček, musíte vytvořit konfigurační soubor. Na rozdíl od základní konfigurace pro samostatný režim, replikovaný režim obsahuje několik dalších řádků.
Všechny servery ve stejné aplikaci musí mít kopie konfiguračního souboru.
Vytvořte každý soubor pomocí příkazu:
sudo nano /opt/zookeeper/conf/zoo.cfg
Poté do souboru vložte následující obsah:
tickTime=2000
dataDir=/var/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=[server_ip]:2888:3888
server.2=[server_ip]:2888:3888
server.3=[server_ip]:2888:3888
Uložte a ukončete soubor. Opakujte proces na každém serveru ve skupině.