Apache Cassandra je open-source vysoce výkonný systém správy databází NoSQL bez jediného bodu selhání. Apache Cassandra používá klastrový model místo toho používá tabulkový model viděný v MySQL/PostgreSQL. Cassandra je vhodná pro aplikace, které si nemohou dovolit přijít o data. Data jsou automaticky replikována do více uzlů kvůli odolnosti proti chybám. Nefunkční uzly mohou být nahrazeny automaticky bez prostojů.
Apache Cassandra je pro vás nejlepší volbou, pokud hledáte škálovatelnost, vysokou dostupnost a vysoký výkon.
V tomto tutoriálu vám ukážeme, jak nainstalovat Apache Cassandra na CentOS 8.
Požadavky
- Server se systémem CentOS 8 s minimálně 2 GB paměti RAM.
- Ve vašem systému je nastaveno heslo uživatele root.
Začínáme
Před spuštěním se doporučuje aktualizovat váš server na nejnovější stabilní verzi. Server můžete aktualizovat pomocí následujícího příkazu:
dnf update
Jakmile je váš server aktualizován, restartujte jej, aby se změny projevily.
Instalovat Javu
Apache Cassandra vyžaduje, aby byly v systému nainstalovány OpenJDK 8 a Python2. OpenJDK 8 a Python2 můžete nainstalovat pomocí následujícího příkazu:
dnf install java-1.8.0-openjdk-devel python2
Jakmile jsou oba balíčky nainstalovány, můžete ověřit verzi Java pomocí následujícího příkazu:
java -version
Měli byste vidět následující výstup:
openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Instalovat Apache Cassandra
Ve výchozím nastavení není Apache Cassandra k dispozici ve výchozím úložišti CentOS 8. Takže na to budete muset vytvořit repo. Můžete vytvořit nový repo soubor /etc/yum.repos.d/cassandra.repo, jak je znázorněno níže:
nano /etc/yum.repos.d/cassandra.repo
Přidejte následující řádky:
[cassandra] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/community enabled = 1 gpgcheck = 0
Uložte a zavřete soubor a poté nainstalujte Apache Cassandra pomocí následujícího příkazu:
dnf install dsc20
Po dokončení instalace můžete přejít k dalšímu kroku
Vytvoření souboru Systemd Unit pro Cassandru
Ve výchozím nastavení není balíček Apache Cassandra schopen generovat soubor služby pro sebe. Budete tedy muset vytvořit soubor služby systemd pro správu služby Cassandra. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/systemd/system/cassandra.service
Přidejte následující řádky:
[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 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 Cassandra a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start cassandra
systemctl enable cassandra
Stav služby Cassandra můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status cassandra
Měli byste vidět následující výstup:
? cassandra.service - Apache Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago Main PID: 1888 (java) Tasks: 53 (limit: 25044) Memory: 272.7M CGroup: /system.slice/cassandra.service ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,054 Writing [email protected](10104/101040 serialized/live bytes, 259 ops) Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db > Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042... Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes. Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,422 Listening for thrift clients...
Test instalaci Apache Cassandra
Apache Cassandra je nyní nainstalován a spuštěn na vašem serveru. Zda běží nebo ne, můžete ověřit pomocí následujícího příkazu:
nodetool status
Měli byste vidět následující příkaz:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 46.11 KB 256 100.0% 2a680007-8c30-4bde-9a3f-9fa212b96d11 rack1
Konfigurovat Apache Cassandra
Ve výchozím nastavení je Cassandra nakonfigurována tak, aby přijímala připojení pouze z místního hostitele.
Můžete se také přihlásit do Cassandra prostřednictvím Cassandra Query Language. Pro přístup k CQL shellu spusťte následující příkaz:
cqlsh
Měli byste vidět následující výstup:
Connected to Test Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Ve výše uvedeném výstupu byste měli vidět, že cluster Cassandra se jmenuje „Test Cluster“. Tento výchozí název clusteru můžete také změnit.
Chcete-li tak učinit, přihlaste se do prostředí CQL pomocí následujícího příkazu:
cqlsh
Dále spusťte následující příkaz a změňte název clusteru na „HowtoForge Cluster“, jak je znázorněno níže:
cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
Dále opusťte shell pomocí následujícího příkazu:
cqlsh>exit;
Dále budete také muset upravit konfigurační soubor cassandra.yaml a definovat nový název clusteru:
nano /etc/cassandra/default.conf/cassandra.yaml
Změňte následující řádek:
cluster_name: 'HowtoForge Cluster'
Po dokončení uložte a zavřete soubor. Poté vymažte mezipaměť systému pomocí následujícího příkazu:
nodetool flush system
Nakonec restartujte službu Apache Cassandra, abyste použili novou konfiguraci:
systemctl restart cassandra
Nyní se přihlaste do prostředí CQL pomocí následujícího příkazu:
cqlsh
Měli byste vidět, že název clusteru je nyní změněn na "HowtoForge Cluster":
Connected to HowtoForge Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Apache Cassandra na CentOS 8. Pokud máte nějaké dotazy, neváhejte se mě zeptat.