Apache Cassandra je open-source systém pro správu distribuovaných databází NoSQL. Cassandru lze horizontálně škálovat přidáním dalších uzlů, přes které se data replikují automaticky. Uzly lze přidávat nebo odebírat bez jakýchkoli prostojů. Uzly lze organizovat logicky jako cluster nebo kruh a nastavit je napříč více datovými centry pro zvýšení rychlosti a spolehlivosti pro vysoce výkonné aplikace.
V tomto tutoriálu se naučíme, jak nainstalovat Apache Cassandra na AlmaLinux a Rocky Linux 8 OS. Příkazy pro oba operační systémy budou stejné, pokud není uvedeno jinak.
Předpoklady
-
Server se systémem AlmaLinux nebo Rocky Linux s minimálně 2 GB RAM.
-
Uživatel bez sudo s právy root.
-
Vše je aktualizováno.
$ sudo dnf update
Krok 1 – Instalace Java
Apache Cassandra vyžaduje ke svému fungování Java 8. Nejnovější verze Cassandry obsahuje experimentální podporu pro Java 11, ale pro náš tutoriál se budeme držet používání Java 8.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Potvrďte instalaci Java.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
Krok 2 – Instalace Apache Cassandra
Prvním krokem je přidání Cassandrina oficiálního úložiště.
Spusťte následující příkaz a vytvořte soubor úložiště /etc/yum.repos.d/cassandra.repo
a zadejte podrobnosti.
$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [cassandra] > name=Apache Cassandra > baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://www.apache.org/dist/cassandra/KEYS > EOF
Nyní, když je vytvořen repo soubor, nainstalujte, Cassandra.
$ sudo dnf install cassandra -y
Krok 3 – Instalace Cqlsh
Použijeme CQL Shell (cqlsh ) nástroj pro interakci s Cassandrou. Nástroj je kompatibilní s Pythonem 2.7 nebo Pythonem 3.6+. V našem tutoriálu budeme používat Python 3.8. Nainstalujte Python 3.8.
$ sudo dnf install python38
Nastavte Python 3.8 jako výchozí verzi Pythonu.
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
Zobrazí se vám několik možností. Zvolíme číslo 3, abychom v našem případě nastavili Python 3.8 jako výchozí verzi.
Potvrďte instalaci Pythonu.
$ python --version Python 3.8.8
Po použití update-alternatives
nástroj, nemusíte používat python3
příkaz.
Nainstalujte cqlsh pomocí správce balíčků pip Python.
$ pip3 install --user cqlsh
Potvrďte cqlsh nainstalovat.
$ cqlsh --version cqlsh 6.0.0
Krok 4 – Vytvoření souboru Systemd Unit pro Cassandru
Vytvořte a otevřete /etc/systemd/system/cassandra.service
pro úpravy.
$ sudo nano /etc/systemd/system/cassandra.service
Vložte do něj následující kód.
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Znovu načtěte servisního démona.
$ sudo systemctl daemon-reload
Povolte a spusťte službu Cassandra.
$ sudo systemctl enable cassandra --now
Zkontrolujte stav služby.
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
Stav můžete také ověřit pomocí nodetool
příkaz.
$ nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
Krok 5 – Konfigurace Cassandry
Výchozí umístění konfiguračních souborů pro Cassandru je /etc/cassandra
. Výchozí umístění pro adresáře protokolů a dat je /var/log/cassandra
a /var/lib/cassandra
.
Nastavení úrovně JVM, jako je velikost haldy, lze nastavit pomocí /etc/cassandra/conf/cassandra-env.sh
soubor. Do JVM_OPTS
můžete předat další argumenty příkazového řádku JVM variabilní. Argumenty jsou při spuštění předány Cassandře.
5.1 Povolit ověření uživatele
Chcete-li povolit ověření uživatele, nejprve si vytvořte zálohu /etc/cassandra/conf/cassandra.yaml
soubor.
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Otevřete cassandra.yaml
soubor pro úpravy.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
V tomto souboru vyhledejte následující parametry.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Změňte hodnoty parametrů, jak je uvedeno níže.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
Další nastavení můžete nakonfigurovat podle svých požadavků. Pokud jsou okomentovány, odkomentujte je.
Po dokončení uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Restartujte Cassandru, abyste aktivovali změněná nastavení.
$ sudo systemctl restart cassandra
5.1.1 – Přidat superuživatele administrátora
Nyní, když jsme povolili ověřování, musíme vytvořit uživatele. K tomu použijeme shell Cassandra Command. Přihlaste se pomocí přihlašovacích údajů pro výchozího uživatele cassandra
.
$ cqlsh -u cassandra -p cassandra
Vytvořte nového superuživatele. Nahraďte [username]
a [yourpassword]
s vašimi přihlašovacími údaji.
[email protected]> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Odhlaste se.
[email protected]> exit
Přihlaste se zpět pomocí nového superuživatelského účtu.
$ cqlsh -u username -p yourpassword
Odeberte zvýšená oprávnění z výchozí cassandra
účet.
[email protected]> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; [email protected]> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Udělte všechna oprávnění účtu superuživatele.
[email protected]> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Odhlaste se.
[email protected]> exit
5.2 – Úprava konfiguračního souboru konzoly
Pokud si chcete Cassandra Shell přizpůsobit, můžete tak učinit úpravou cqlshrc
soubor. Výchozí umístění souboru je v ~/.cassandra
adresář. Pokud jej chcete načíst z jiného adresáře, můžete předat argument --cqlshrc /customdirectory
do cqlsh
nástroj za běhu.
Ukázkový soubor najdete na /etc/cassandra/conf/cqlshrc.sample
obsahující všechna nastavení, která můžete konfigurovat ohledně Cassandra Shell.
Zkopírujte a přejmenujte ukázkový soubor na ~/.cassandra
adresář.
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Aktualizujte cqlshrc
soubor s požadovanými oprávněními.
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Otevřete soubor pro úpravy.
$ nano ~/.cassandra/cqlshrc
Nakonfigurujeme shell tak, aby se automaticky přihlašoval pomocí přihlašovacích údajů superuživatele. Najděte následující sekci a vyplňte ji svým uživatelským jménem a heslem.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Upravte všechna další nastavení, která chcete změnit. Některá nastavení jsou komentována pomocí ;;
. Odkomentujte je odstraněním dvojitých středníků a poté proveďte změnu.
Po dokončení uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Přihlaste se do Cassandry shell se svými novými změnami.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
5.3 – Přejmenování clusteru
Nakonec přejmenujeme název clusteru z Test Cluster na vámi zvolené jméno.
Přihlaste se do cqlsh
terminál.
$ cqlsh
Nahraďte [clustername]
s vaším novým názvem clusteru v příkazu níže.
[email protected]> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Opusťte shell
[email protected]> exit
Otevřete soubor /etc/cassandra/conf/cassandra.yaml
pro úpravy.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Nahraďte hodnotu proměnné cluster_name
se jménem dle vašeho výběru.
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Po dokončení uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Vymažte mezipaměť systému Cassandra.
$ nodetool flush system
Restartujte Cassandru.
$ sudo systemctl restart cassandra
Přihlaste se do shellu, abyste viděli nové jméno.
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. [email protected]>
Závěr
V tomto tutoriálu jste se naučili, jak nainstalovat Apache Cassandra na server AlmaLinux nebo Rocky Linux. Také jste se naučili, jak přidat ověření uživatele a provést některé základní konfigurace. Chcete-li se dozvědět více, navštivte oficiální dokumentaci Cassandry. Pokud máte nějaké dotazy, napište je do komentářů níže.