Apache Cassandra auf CentOS 7 installieren
Übersicht
Apache Cassandra ist ein freies, Open-Source, verteiltes NoSQL-Datenbanksystem. Es speichert große Datenmengen in dezentralen, hochverfügbaren Clustern. Daten werden über mehrere Server verteilt, wodurch ein Single Point of Failure vermieden wird. NoSQL-Datenbanken verwenden andere Speicher- und Abfragemodelle als relationale Systeme wie MySQL oder PostgreSQL.
Diese Anleitung zeigt die Installation von Apache Cassandra auf CentOS 7.
Voraussetzungen
- Root-Zugriff (oder sudo) auf einem CentOS 7-Server
- Internetzugang zum Herunterladen von Paketen
- Mindestens 2–4 GB RAM empfohlen für Test-/Entwicklungsumgebungen
Wichtig: Produktions-Cluster benötigen detaillierte Kapazitätsplanung und Netzwerk-/Sicherheitskonfigurationen, die hier nur kurz erwähnt werden.
Schritt 1 - JAVA installieren
Aktualisieren Sie zuerst die Pakete und Repositories:
yum -y updateLaden Sie das Oracle Java RPM-Paket herunter (Beispiel):
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"Falls wget fehlt, installieren Sie es:
yum -y install wgetInstallieren Sie das heruntergeladene RPM:
yum -y localinstall jdk-8u131-linux-x64.rpmPrüfen Sie die Java-Version:
java -versionBeispielausgabe:
[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)Prüfen Sie, ob die Umgebungsvariable JAVA_HOME gesetzt ist:
echo $JAVA_HOMEWenn die Ausgabe leer ist, setzen Sie JAVA_HOME in Ihrer Shell-Konfigurationsdatei (~/.bash_profile). Beispiel mit nano:
nano ~/.bash_profileFügen Sie am Ende der Datei folgende Zeilen hinzu (passen Sie den Pfad ggf. an):
export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jreLaden Sie die Datei neu:
source ~/.bash_profilePrüfen Sie nochmals:
[root@liptan-pc ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131/Hinweis: Verwenden Sie für neue Installationen alternativ OpenJDK, wenn Sie keine Oracle-Java-Binärdateien benötigen.
Schritt 2 - Cassandra installieren
Erstellen Sie eine neue Repo-Datei für Apache Cassandra:
nano /etc/yum.repos.d/cassandra.repoFügen Sie diese Inhalte ein:
[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/KEYSInstallieren Sie Cassandra:
yum -y install cassandraAktualisieren Sie Systemd-Daemons und starten Sie Cassandra:
systemctl daemon-reload
systemctl start cassandra
systemctl enable cassandraÜberprüfen Sie den Cluster-Status:
nodetool statusErwartete Ausgabe (Beispiel):
[root@ip-172-31-7-136 ~]# 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 136.29 KiB 256 100.0% b3d26649-9e10-4bee-9b3c-8e81c4394b2e rack1Wenn nodetool keine Verbindung herstellt (Fehlermeldung wie unten), müssen Sie die JVM RMI-Hostkonfiguration anpassen:
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.Öffnen Sie die Cassandra-Umgebungskonfiguration:
nano /etc/cassandra/default.conf/cassandra-env.shSuchen Sie die folgende Zeile:
# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=" Entfernen Sie das Kommentarzeichen und setzen Sie die IP auf localhost (oder die passende Host-IP):
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"Speichern und starten Sie Cassandra neu:
systemctl restart cassandraVerwenden Sie danach erneut:
nodetool statusCassandra enthält die Kommandozeile cqlsh für Abfragen in CQL (Cassandra Query Language):
cqlshBeispielausgabe:
[root@liptan-pc ~]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.0 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.Kurzanleitung: Mini-Methodik
- System aktualisieren (yum update).
- Java installieren und JAVA_HOME setzen.
- Cassandra-Repo hinzufügen.
- Cassandra installieren, starten, aktivieren.
- nodetool und cqlsh verwenden, um Status und Verfügbarkeit zu prüfen.
Troubleshooting - Häufige Probleme und Lösungen
Problem: nodetool ConnectException (Connection refused)
- Ursache: RMI-Hostname nicht gesetzt oder Firewall blockiert Port 7199.
- Lösung: In cassandra-env.sh JVM_OPTS -Djava.rmi.server.hostname setzen; Ports prüfen (7199, 9042) und Firewall/iptables anpassen.
Problem: cqlsh verbindet nicht (Timeout oder Refused)
- Ursache: Cassandra nicht gestartet, native transport deaktiviert, oder Port 9042 blockiert.
- Lösung: systemctl status cassandra prüfen, cassandra.yaml auf native_transport_port prüfen, Firewall öffnen.
Problem: Knoten finden sich nicht im Cluster
- Ursache: seed-Hosts falsch konfiguriert, falsche listen_address oder rpc_address.
- Lösung: cassandra.yaml prüfen, seed-Hosts korrekt angeben, restart.
Wichtig: Für produktive Umgebungen prüfen Sie Logs unter /var/log/cassandra/ auf detaillierte Fehlermeldungen.
Checklisten nach Rolle
Administrator
- JAVA_HOME korrekt gesetzt
- Systemd-Unit aktiv und aktiviert
- Ports 7199, 7000/7001 (intern), 9042 offen (nur intern oder über VPN)
- Backups planen (SSTablebackup/Tools)
DevOps / Betreiber
- Automatisierte Installation (Ansible/Chef/Puppet) vorbereiten
- Überwachung (nodetool, JMX-Metriken, SLR/Alerts)
- Rolling-Restart-Strategie definieren
Entwickler
- cqlsh verwenden, einfache Keyspaces testen
- Konsistenzlevel (ONE, QUORUM, ALL) verstehen und testen
- Schema-Design nach Partitionierung und Reihenfolge prüfen
Wann Cassandra nicht die richtige Wahl ist
- Starke ACID-Transaktionen über mehrere Tabellen sind nötig (RDBMS besser)
- Sehr kleine, relationale Datensätze mit komplexen Joins
- Wenn Team-Erfahrung mit NoSQL/Partitionierung fehlt und schnelle Inbetriebnahme gefordert ist
Alternative Ansätze
- Für transaktionale, relationale Workloads: PostgreSQL oder MySQL
- Für einfache Key-Value-Store-Anforderungen: Redis oder RocksDB
- Für Dokumentendaten mit flexiblem Schema: MongoDB
Sicherheit und Datenschutz
- Beschränken Sie Zugriff auf Verwaltungs-Ports per Firewall oder VPN.
- Aktivieren Sie Authentifizierung und TLS in Cassandra für produktive Umgebungen.
- Klären Sie Datenschutzanforderungen (z. B. personenbezogene Daten) und implementieren Sie geeignete Verschlüsselung und Retention-Policies.
Kurzes Cheat-Sheet (Wichtige Befehle)
- System aktualisieren: yum -y update
- Java prüfen: java -version
- Repo anlegen: nano /etc/yum.repos.d/cassandra.repo
- Cassandra installieren: yum -y install cassandra
- Dienst starten: systemctl start cassandra
- Dienst aktivieren: systemctl enable cassandra
- Status prüfen: nodetool status
- CQL-Konsole: cqlsh
1-Zeiler Glossar
- CQL: Cassandra Query Language, Abfragesprache ähnlich SQL für Cassandra.
- nodetool: Verwaltungswerkzeug für Cassandra-Knoten (Cluster-Status, Repair, etc.).
Zusammenfassung
- Sie haben Java installiert, JAVA_HOME gesetzt und Cassandra über ein Yum-Repo installiert.
- Starten Sie den Dienst, aktivieren Sie ihn und prüfen Sie mit nodetool und cqlsh.
- Achten Sie in Produktionsumgebungen auf Netzwerk, Sicherheit, Monitoring und Backup-Strategien.
Wichtig: Diese Anleitung deckt eine Basis-Installation ab. Für Produktionsbetrieb sind zusätzliche Schritte in den Bereichen Netzwerk, Sicherheit, Kapazitätsplanung und automatisches Deployment erforderlich.
Ähnliche Materialien
Podman auf Debian 11 installieren und nutzen
Apt-Pinning: Kurze Einführung für Debian
FSR 4 in jedem Spiel mit OptiScaler
DansGuardian + Squid (NTLM) auf Debian Etch installieren
App-Installationsfehler auf SD-Karte (Error -18) beheben