So installierst du Apache Cassandra auf AlmaLinux / Rocky Linux 8
Apache Cassandra ist ein verteiltes Open-Source NoSQL-Datenbankmanagementsystem. Cassandra kann horizontal skaliert werden, indem weitere Knoten hinzugefügt werden, über die die Daten automatisch repliziert werden. Die Knoten können ohne Ausfallzeit hinzugefügt oder entfernt werden. Die Knoten können logisch als Cluster oder Ring organisiert und über mehrere Rechenzentren verteilt werden, um die Geschwindigkeit und Zuverlässigkeit von Hochleistungsanwendungen zu verbessern.
In diesem Tutorial lernen wir, wie man Apache Cassandra auf AlmaLinux und Rocky Linux 8 OS installiert. Die Befehle für beide Betriebssysteme sind identisch, sofern nicht anders angegeben.
Voraussetzungen
- Ein Server mit AlmaLinux oder Rocky Linux und mindestens 2 GB RAM.
- Ein Nicht-Sudo-Benutzer mit Root-Rechten.
- Alles ist auf dem neuesten Stand.
$ sudo dnf update
Schritt 1 – Java installieren
Apache Cassandra benötigt Java 8, um zu funktionieren. Die neueste Version von Cassandra bietet experimentelle Unterstützung für Java 11, aber für unseren Lehrgang werden wir Java 8 verwenden.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Bestätige die Java-Installation.
$ 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)
Schritt 2 – Apache Cassandra installieren
Der erste Schritt besteht darin, das offizielle Repository von Cassandra hinzuzufügen.
Führe den folgenden Befehl aus, um die Repository-Datei /etc/yum.repos.d/cassandra.repo
zu erstellen und gib die Details ein.
$ 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
Jetzt, wo die Repository-Datei erstellt ist, installierst du Cassandra.
$ sudo dnf install cassandra -y
Schritt 3 – Cqlsh installieren
Wir werden das Tool CQL Shell(cqlsh) verwenden, um mit Cassandra zu interagieren. Das Tool ist mit Python 2.7 oder Python 3.6+ kompatibel. Für unseren Lehrgang werden wir Python 3.8 verwenden. Installiere Python 3.8.
$ sudo dnf install python38
Lege Python 3.8 als Standard-Python-Version fest.
$ 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
Es werden dir mehrere Optionen angezeigt. Wir wählen die Nummer 3, um Python 3.8 in unserem Fall als Standardversion festzulegen.
Bestätige die Python-Installation.
$ python --version Python 3.8.8
Nachdem du das Dienstprogramm update-alternatives
verwendet hast, musst du den Befehl python3
nicht mehr verwenden.
Installiere cqlsh mit dem Python-Paketmanager pip.
$ pip3 install --user cqlsh
Bestätige die Installation von cqlsh.
$ cqlsh --version cqlsh 6.0.0
Schritt 4 – Erstelle eine Systemd Unit-Datei für Cassandra
Erstelle und öffne die /etc/systemd/system/cassandra.service
zum Bearbeiten.
$ sudo nano /etc/systemd/system/cassandra.service
Füge den folgenden Code in die Datei ein.
[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
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Lade den Service-Daemon neu.
$ sudo systemctl daemon-reload
Aktiviere und starte den Cassandra-Dienst.
$ sudo systemctl enable cassandra --now
Überprüfe den Status des Dienstes.
$ 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>
Du kannst den Status auch mit dem Befehl nodetool
überprüfen.
$ 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
Schritt 5 – Cassandra konfigurieren
Der Standardspeicherort der Konfigurationsdateien für Cassandra ist /etc/cassandra
. Der Standardspeicherort für die Log- und Datenverzeichnisse ist /var/log/cassandra
und /var/lib/cassandra
.
Einstellungen auf JVM-Ebene wie die Heap-Größe können über die Datei /etc/cassandra/conf/cassandra-env.sh
festgelegt werden. Du kannst zusätzliche JVM-Befehlszeilenargumente an die Variable JVM_OPTS
übergeben. Die Argumente werden an Cassandra übergeben, wenn es startet.
5.1 Aktivieren der Benutzerauthentifizierung
Um die Benutzerauthentifizierung zu aktivieren, musst du zunächst ein Backup der Datei /etc/cassandra/conf/cassandra.yaml
erstellen.
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Öffne die Datei cassandra.yaml
, um sie zu bearbeiten.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Finde die folgenden Parameter in dieser Datei.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Ändere die Werte der Parameter wie unten angegeben.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
Du kannst je nach deinen Anforderungen weitere Einstellungen vornehmen. Wenn sie auskommentiert sind, dann entferne die Kommentare.
Wenn du fertig bist, speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Starte Cassandra neu, um die geänderten Einstellungen zu aktivieren.
$ sudo systemctl restart cassandra
5.1.1 – Hinzufügen eines Administrator-Superusers
Jetzt, wo wir die Authentifizierung aktiviert haben, müssen wir einen Benutzer anlegen. Dazu verwenden wir das Cassandra Command Shell Utility. Melde dich mit den Anmeldedaten für den Standardbenutzer cassandra
an.
$ cqlsh -u cassandra -p cassandra
Erstelle einen neuen Superuser. Ersetze [username]
und [yourpassword]
durch deine Anmeldedaten.
cassandra@cqlsh> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Melde dich ab.
cassandra@cqlsh> exit
Melde dich mit dem neuen Superuser-Konto wieder an.
$ cqlsh -u username -p yourpassword
Entferne die erweiterten Rechte des Standardkontos cassandra
.
username@cqlsh> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; username@cqlsh> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Erteile dem Superuser-Konto alle Berechtigungen.
username@cqlsh> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Melde dich ab.
username@cqlsh> exit
5.2 – Die Konfigurationsdatei der Konsole bearbeiten
Wenn du die Cassandra Shell anpassen möchtest, kannst du dies tun, indem du die Datei cqlshrc
bearbeitest. Der Standardspeicherort für die Datei ist das Verzeichnis ~/.cassandra
. Wenn du sie aus einem anderen Verzeichnis laden möchtest, kannst du das Argument --cqlshrc /customdirectory
an das Tool cqlsh
übergeben, während es läuft.
Unter /etc/cassandra/conf/cqlshrc.sample
findest du eine Beispieldatei, die alle Einstellungen enthält, die du für die Cassandra Shell konfigurieren kannst.
Kopiere die Beispieldatei und benenne sie in das Verzeichnis ~/.cassandra
um.
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Aktualisiere die Datei cqlshrc
mit den erforderlichen Berechtigungen.
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Öffne die Datei zur Bearbeitung.
$ nano ~/.cassandra/cqlshrc
Wir werden die Shell so konfigurieren, dass sie sich automatisch mit den Superuser-Anmeldedaten anmeldet. Suche den folgenden Abschnitt und fülle ihn mit deinem Benutzernamen und Passwort aus.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Bearbeite alle anderen Einstellungen, die du ändern möchtest. Einige der Einstellungen sind mit ;;
kommentiert. Hebe die Kommentare auf, indem du die doppelten Semikolons entfernst, und nimm dann die Änderung vor.
Wenn du fertig bist, speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Melde dich mit deinen neuen Änderungen in der Cassandra-Shell an.
$ 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. username@cqlsh>
5.3 – Den Cluster umbenennen
Zum Schluss benennen wir den Cluster von Test Cluster in den von dir gewählten Namen um.
Melde dich im Terminal cqlsh
an.
$ cqlsh
Ersetze im unten stehenden Befehl [clustername]
durch deinen neuen Clusternamen.
username@cqlsh> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Beende die Shell
username@cqlsh> exit
Öffne die Datei /etc/cassandra/conf/cassandra.yaml
zum Bearbeiten.
$ sudo nano /etc/cassandra/conf/cassandra.yaml
Ersetze den Wert der Variable cluster_name
durch den von dir gewählten Namen.
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Wenn du fertig bist, speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Lösche den Cassandra-System-Cache.
$ nodetool flush system
Starte Cassandra neu.
$ sudo systemctl restart cassandra
Melde dich in der Shell an, um den neuen Namen zu sehen.
$ 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. username@cqlsh>
Fazit
In diesem Lernprogramm hast du gelernt, wie du Apache Cassandra auf einem AlmaLinux- oder Rocky-Linux-Server installierst. Außerdem hast du gelernt, wie du die Benutzerauthentifizierung hinzufügst und einige grundlegende Konfigurationen vornimmst. Wenn du mehr wissen willst, besuche die offizielle Cassandra-Dokumentation. Wenn du Fragen hast, schreibe sie unten in die Kommentare.