Technologieführer

Apache Cassandra auf CentOS 8 installieren

5 min read Datenbanken Aktualisiert 19 Oct 2025
Apache Cassandra auf CentOS 8 installieren
Apache Cassandra auf CentOS 8 installieren

Hochverfügbare Apache Cassandra Cluster-Installation auf einem CentOS-Server

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

  1. In cqlsh verbinden:
cqlsh
  1. Clustername in system.local ändern (Beispiel):
UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
  1. cqlsh verlassen:
exit
  1. Konfiguration anpassen:
nano /etc/cassandra/default.conf/cassandra.yaml

Ändern Sie die Zeile:

cluster_name: 'HowtoForge Cluster'
  1. 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

  1. Dienst stoppen:
systemctl stop cassandra
  1. Konfigurationsbackup wiederherstellen (falls vorhanden).
  2. Datenverzeichnis (z. B. /var/lib/cassandra) von Sicherung zurückspielen.
  3. Dienst starten und Status prüfen.
  4. 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.

Autor
Redaktion

Ähnliche Materialien

macOS: Recent Places löschen & Limit ändern
macOS Tipps

macOS: Recent Places löschen & Limit ändern

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

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

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

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

Tabs in Firefox und Chrome effizient organisieren
Browser Tipps

Tabs in Firefox und Chrome effizient organisieren

Was ist der Ordner found.000 in Windows 10?
Windows

Was ist der Ordner found.000 in Windows 10?

Windows 8.1: Region‑Fehler schnell beheben
Fehlerbehebung

Windows 8.1: Region‑Fehler schnell beheben