Apache Cassandra je open-source NoSQL databáze. Jedním z jeho hlavních rysů je jeho decentralizovaná povaha, která poskytuje jedinečnou odolnost proti chybám. Replikace našich dat napříč datovými centry znamená, že naše produkce neutrpí ztrátou jednoho z našich webů, o čem všichni správci systému sní (nebo jsou z takového nastavení opravdu rádi).
V tomto tutoriálu nainstalujeme Cassandru na Red Hat Enterprise Linux 8 přidáním úložiště Cassandra, nainstalujeme software a nastavíme vše potřebné k tomu, aby naše služba fungovala a byla snadno spravovatelná.
V tomto tutoriálu se naučíte:
- Jak přidat úložiště Cassandra
- Jak nainstalovat potřebné balíčky
- Jak opravit soubor systemd unit
- Jak otestovat Cassandru pomocí cqlsh
Dotazování na systémové tabulky v Cassandře na RHEL 8
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux 8 |
Software | Apache Cassandra 3.11 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jak nainstalovat cassandru na Redhat 8 krok za krokem
Red Hat Enterprise Linux používá balení založené na rpm a Apache Cassandra poskytuje úložiště rpm. I když nejsou zahrnuty všechny závislosti, problémy, které je třeba vyřešit, nepředstavují velký problém. Vše, co potřebujeme, je předem nainstalovaná Java 8 (OpenJDK nebo Oracle JDK).
- Nainstalujeme Cassandru z oficiálního úložiště Apache. Abychom to mohli udělat, vytvoříme textový soubor
/etc/yum.repos.d/cassandra.repo
s následujícím obsahem:[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
- S touto definicí úložiště můžeme nainstalovat Cassandru pomocí
dnf
:# dnf install cassandra
Instalace požádá o přijetí klíčů vývojářů. Protože věříme, že nezveřejní něco složitého, přijmeme klíče, abychom mohli pokračovat v instalaci.
- Instalovaný balíček obsahuje init skript pro SysV a
systemd
dokáže vygenerovat soubor služby pro sebe, ale to nehraje dobře. Abychom se zachránili před pokusem o omyl, vytvoříme jednoduchý nový soubor služby/etc/systemd/system/cassandra.service
s následujícím obsahem:[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
systemd
je třeba znovu načíst, abyste věděli o nové definici služby:# systemctl daemon-reload
- Nyní můžeme spravovat naši službu pomocí systemd. Můžeme spustit, zastavit a získat stav Cassandry:
# systemctl start|stop|status cassandra
Jeho spuštěný stav by měl poskytovat něco podobného jako níže uvedený výstup se souborem jednotky vytvořeným výše:
# systemctl status cassandra cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-01-08 18:39:32 CET; 24s ago Main PID: 6615 (java) Tasks: 58 (limit: 12544) Memory: 1.1G CGroup: /system.slice/cassandra.service 6615 java -Xloggc:/var/log/cassandra/gc.log -ea [...]
- Volitelně můžeme povolit automatické spouštění při spouštění:
# systemctl enable cassandra
- Chceme-li spustit několik příkladů dotazů pro testování fungujícího systému správy databází, použijeme
cqlsh
pro přístup k shellu CQL. Tento nástroj je dodáván s instalací, nicméněpython
tento nástroj je závislý na nikoli. Budeme jej muset nainstalovat pomocídnf
:# dnf install python2
- Pro spuštění příkladu dotazu proti Cassandře můžeme zadat shell CQL:
# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
- Vzhledem k tomu, že uživatelská data ještě nejsou vložena do databáze, zeptáme se na některá data ze systémových tabulek, abychom zjistili, zda naše instalace funguje správně:
cqlsh> SELECT keyspace_name, table_name FROM system_schema.tables where keyspace_name = 'system_auth'; keyspace_name | table_name ---------------+-------------------------------- system_auth | resource_role_permissons_index system_auth | role_members system_auth | role_permissions system_auth | roles (4 rows)