Apache Cassandra auf CentOS 8 installieren

Warum Cassandra wählen
Apache Cassandra ist ein verteiltes NoSQL-Datenbanksystem ohne Single Point of Failure. Daten werden automatisch auf mehrere Knoten repliziert, dadurch ist Cassandra geeignet für Anwendungen, die keine Datenverluste tolerieren. Typische Vorteile:
- Horizontale Skalierbarkeit
- Hohe Verfügbarkeit durch Replikation
- Hohe Schreibleistung bei großen Datenmengen
Kurze Definition: Cluster — eine Gruppe von Cassandra-Knoten, die zusammenarbeiten und Daten replizieren.
Voraussetzungen
- Ein Server mit CentOS 8 und mindestens 2 GB RAM.
- Root- oder sudo-Zugriff mit gesetztem Passwort.
- Netzwerkzugriff zwischen Knoten (falls Sie ein Multi-Node-Cluster planen).
Wichtig: CentOS 8 befindet sich nicht mehr im aktiven Lebenszyklus wie frühere LTS-Versionen. Für neue Produktionsumgebungen sollten Sie prüfen, ob eine Migration zu Rocky Linux, AlmaLinux oder CentOS Stream sinnvoll ist.
Schnell-Checkliste vor der Installation
- Hardware/VM: ≥2 GB RAM, ausreichender Plattenplatz
- Netzwerk: Ports freigeben (siehe Abschnitt Sicherheit)
- Backups: Wichtige Daten gesichert
- Zeitfenster: Neustart möglich
System aktualisieren
Vor Installationsbeginn empfehlen wir ein Systemupdate:
dnf update
Starten Sie den Server neu, falls Kern- oder Paketupdates das erfordern.
Java und Python installieren
Cassandra benötigt OpenJDK 8 und Python2. Installieren Sie beide Pakete:
dnf install java-1.8.0-openjdk-devel python2
Überprüfen Sie die Java-Installation:
java -version
Erwartete Ausgabe (Beispiel):
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)
Hinweis: Neuere Java-Versionen können ebenfalls funktionieren, prüfen Sie Kompatibilität zur eingesetzten Cassandra-Distribution.
Repository für Cassandra hinzufügen
CentOS 8 enthält Cassandra nicht im Standard-Repository. Erstellen Sie eine neue Repositoriy-Datei:
nano /etc/yum.repos.d/cassandra.repo
Fügen Sie folgende Zeilen ein:
[cassandra]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0
Speichern und schließen Sie die Datei.
Installieren Sie das Paket aus dem Datastax-Repo:
dnf install dsc20
Hinweis: “dsc20” ist das Paket aus dem DataStax-Community-Repo. Prüfen Sie vor der Installation, ob dieses Paket Ihrer gewünschten Cassandra-Version entspricht oder ob Sie eine andere Distribution bevorzugen.
Systemd-Unit-Datei für Cassandra anlegen
Das Paket legt unter Umständen keine vollständige systemd-Einheit an. Erstellen Sie eine Service-Datei:
nano /etc/systemd/system/cassandra.service
Fügen Sie folgenden Inhalt ein (achten Sie auf korrekte Zeilenumbrüche):
[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
Speichern, dann reloaden und Dienst starten:
systemctl daemon-reload
systemctl start cassandra
systemctl enable cassandra
Status prüfen:
systemctl status cassandra
Erwartete Konsolenausgaben zeigen den Dienst als “active (running)”. Logs können Sie mit journalctl überprüfen:
journalctl -u cassandra -f
Installation testen
Verifizieren Sie den Cluster-Status mit nodetool:
nodetool status
Beispielausgabe:
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
Verbinden Sie sich mit dem CQL-Shell-Client:
cqlsh
Sie sollten eine Verbindung zum lokalen Cluster sehen, z. B.:
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>
Clustername ändern
- In cqlsh verbinden:
cqlsh
- Clustername in system.local ändern (Beispiel):
UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
- cqlsh verlassen:
exit
- Konfiguration anpassen:
nano /etc/cassandra/default.conf/cassandra.yaml
Ändern Sie die Zeile:
cluster_name: 'HowtoForge Cluster'
- System-Cache leeren und Dienst neustarten:
nodetool flush system
systemctl restart cassandra
Prüfen Sie mit cqlsh, ob der Clustername übernommen wurde.
Sicherheit und Firewall
Wichtige Cassandra-Ports (standardmäßig):
- 7000 TCP — Internode (nicht verschlüsselt)
- 7001 TCP — Internode TLS
- 7199 TCP — JMX (Verwaltung)
- 9042 TCP — Native CQL-Client
- 9160 TCP — Thrift (veraltet)
Öffnen Sie nur die nötigen Ports und schützen Sie JMX mit Zugangsbeschränkungen. Beispiel firewalld:
firewall-cmd --add-port=9042/tcp --permanent
firewall-cmd --add-port=7000/tcp --permanent
firewall-cmd --reload
Hinweis: Thrift (9160) ist veraltet; CQL (9042) wird bevorzugt.
Konfigurations-Hinweise für Produktion
- Setzen Sie den Replikationsfaktor entsprechend Ihrer Datacenter-Topologie.
- Passen Sie Heap- und JVM-Parameter in /etc/cassandra/jvm.options an.
- Planen Sie Monitoring mit nodetool, JMX-Export und Metrik-Sammlung.
- Sichern Sie Konfigurationsdateien vor Änderungen.
Wichtig: Testen Sie Änderungen zuerst in einer Staging-Umgebung.
Abnahmekriterien
- nodetool status zeigt den Knoten als Up/Normal (UN).
- cqlsh verbindet und führt einfache CQL-Befehle aus.
- systemctl status zeigt den Dienst als active (running).
- Logs enthalten keine wiederkehrenden ERROR-Meldungen beim Start.
Kurze Fehlerbehebung
- Dienst startet nicht: journalctl -u cassandra prüfen.
- Port-Konflikte: lsof -i :9042 und ähnliche prüfen.
- Java-Probleme: java -version und JVM-Optionen kontrollieren.
- SELinux blockiert Zugriffe: temporär permissive setzen zum Testen (setenforce 0) oder gezielte Policies erstellen.
Rollback- und Notfall-Runbook
- Dienst stoppen:
systemctl stop cassandra
- Konfigurationsbackup wiederherstellen (falls vorhanden).
- Datenverzeichnis (z. B. /var/lib/cassandra) von Sicherung zurückspielen.
- Dienst starten und Status prüfen.
- In der Zwischenzeit Anwendungen auf read-only oder Wartungsmodus setzen.
Rollenbasierte Checkliste
- Systemadministrator: Repository einrichten, Java installieren, firewall konfigurieren.
- Datenbank-Admin: Replikationsstrategie wählen, Backup-Plan erstellen, Performance-Tuning.
- Sicherheitsteam: Ports & JMX absichern, TLS für Internode-Kommunikation prüfen.
- Entwickler: CQL-Integration testen, Schema-Migrationen validieren.
Kompatibilität und Migrationstipps
- Prüfen Sie, welche Cassandra-Version Sie benötigen und ob das gewählte Paket diese Version liefert.
- Für neue Deployments empfehlen sich unterstützte Linux-Distributionen mit langfristigem Support.
- Bei Migrationen: Replikation und Rebalancing in kleinen Schritten testen.
Glossar (ein Satz je Begriff)
- Node: Einzelner Server in einem Cassandra-Cluster.
- Cluster: Verbund mehrerer Nodes, die Daten gemeinsam verwalten.
- Replikationsfaktor: Anzahl der Kopien jeder Partition im Cluster.
- CQL: Cassandra Query Language, SQL-ähnliche Sprache für Cassandra.
- nodetool: Kommandozeilenwerkzeug zur Verwaltung und Diagnose von Cassandra.
Fazit
Sie haben nun Cassandra auf CentOS 8 installiert, als systemd-Dienst eingerichtet und die Basis-Konfiguration getestet. Für den produktiven Betrieb sind zusätzliche Schritte empfehlenswert: Firewall- und TLS-Konfiguration, Monitoring, Backups und eine Überprüfung der eingesetzten Linux-Distribution hinsichtlich Support.
Wichtig: Planen Sie ein Hardening und testen Sie Konfigurationsänderungen in einer Staging-Umgebung.
Wenn Sie Hilfe bei spezifischen Problemen brauchen (z. B. JVM-Tuning, Replikationsstrategie oder Multi-DC-Setups), geben Sie bitte Ihre Zielversion und Topologie an.
Ähnliche Materialien

macOS: Recent Places löschen & Limit ändern

Windows 10: Fehler 0x80070057, 0xa0000400 und Cortana beheben

Windows-Updates entfernen: Schritt-für-Schritt

Tabs in Firefox und Chrome effizient organisieren

Was ist der Ordner found.000 in Windows 10?
