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

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE