Installation der Apache Cassandra NoSQL-Datenbank unter CentOS 8

Apache Cassandra ist ein hochleistungsfähiges Open-Source-Datenbankverwaltungssystem für NoSQL, das keinen Single Point of Failure aufweist. Apache Cassandra verwendet ein Cluster-Modell, statt dessen wird das Tabellenmodell von MySQL/PostgreSQL verwendet. Cassandra eignet sich für Anwendungen, die sich keinen Datenverlust leisten können. Die Daten werden zur Fehlertoleranz automatisch auf mehrere Knoten repliziert. Ausgefallene Knoten können automatisch und ohne Ausfallzeit ersetzt werden.

Apache Cassandra ist die beste Wahl für Sie, wenn Sie nach Skalierbarkeit, Hochverfügbarkeit und Leistung suchen.

In diesem Tutorial zeigen wir Ihnen, wie Sie Apache Cassandra unter CentOS 8 installieren.

Anforderungen

  • Ein Server mit CentOS 8 mit mindestens 2 GB RAM.
  • Ein Root-Passwort wird auf Ihrem System eingerichtet.

Erste Schritte

Es wird empfohlen, Ihren Server vor Beginn auf die neueste stabile Version zu aktualisieren. Sie können Ihren Server mit dem folgenden Befehl aktualisieren:

dnf update

Sobald Ihr Server aktualisiert ist, starten Sie ihn neu, um die Änderungen zu übernehmen.

Java installieren

Apache Cassandra erfordert die Installation von OpenJDK 8 und Python2 auf dem System. Sie können OpenJDK 8 und Python2 mit dem folgenden Befehl installieren:

dnf install java-1.8.0-openjdk-devel python2

Sobald beide Pakete installiert sind, können Sie die Java-Version mit dem folgenden Befehl überprüfen:

java -version

Sie sollten die folgende Ausgabe sehen:

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)

Apache Cassandra installieren

Standardmäßig ist Apache Cassandra nicht im Standard-Repository von CentOS 8 verfügbar. Dafür müssen Sie also einen Repo erstellen. Sie können eine neue Repo-Datei /etc/yum.repos.d/cassandra.repo wie unten gezeigt erstellen:

nano /etc/yum.repos.d/cassandra.repo

Fügen Sie die folgenden Zeilen hinzu:

[cassandra]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0

Speichern und schließen Sie die Datei und installieren Sie dann den Apache Cassandra mit dem folgenden Befehl:

dnf install dsc20

Wenn Sie mit der Installation fertig sind, können Sie mit dem nächsten Schritt fortfahren

Erstellen Sie eine Systemeinheitendatei für Kassandra

Standardmäßig ist das Apache Cassandra-Paket nicht in der Lage, eine Servicedatei für sich selbst zu erzeugen. Sie müssen also eine Systemdienstdatei erstellen, um den Kassandra-Dienst zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/cassandra.service

Fügen Sie die folgenden Zeilen hinzu:

[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 und schließen Sie die Datei. Dann laden Sie den systemdämon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als nächstes den Kassandra-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:

systemctl start cassandra
 systemctl enable cassandra

Sie können den Status des Kassandra-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status cassandra

Sie sollten die folgende Ausgabe sehen:

? cassandra.service - Apache
   Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago
 Main PID: 1888 (java)
    Tasks: 53 (limit: 25044)
   Memory: 272.7M
   CGroup: /system.slice/cassandra.service
           ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa>

Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,054 Writing [email protected](10104/101040 serialized/live bytes, 259 ops)
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db >
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local->
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].>
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042...
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes.
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160
Dec 07 01:25:29 centos8 cassandra[1888]:  INFO 01:25:29,422 Listening for thrift clients...

Testen Sie die Installation von Apache Cassandra

Apache Cassandra ist jetzt installiert und läuft auf Ihrem Server. Mit dem folgenden Befehl können Sie überprüfen, ob es läuft oder nicht:

nodetool status

Sie sollten den folgenden Befehl sehen:

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

Konfigurieren Sie Apache Cassandra

Standardmäßig ist Cassandra so konfiguriert, dass sie nur die Verbindung vom lokalen Host akzeptiert.

Sie können sich auch über die Kassandra-Abfragesprache bei Kassandra anmelden. Um auf die CQL-Shell zuzugreifen, führen Sie den folgenden Befehl aus:

cqlsh

Sie sollten die folgende Ausgabe sehen:

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> 

In der obigen Ausgabe sollten Sie sehen, dass der Kassandra-Cluster „Testcluster“ genannt wird. Sie können diesen Standard-Clusternamen auch ändern.

Melden Sie sich dazu mit dem folgenden Befehl in der CQL-Shell an:

cqlsh

Führen Sie als nächstes den folgenden Befehl aus, um den Cluster-Namen in „HowtoForge Cluster“ zu ändern, wie unten gezeigt:

cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';

Als nächstes verlassen Sie die Shell mit dem folgenden Befehl:

cqlsh>exit;

Als nächstes müssen Sie auch die Konfigurationsdatei cassandra.yaml bearbeiten und Ihren neuen Cluster-Namen definieren:

nano /etc/cassandra/default.conf/cassandra.yaml

Ändern Sie die folgende Zeile:

cluster_name: 'HowtoForge Cluster'

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Löschen Sie dann den System-Cache mit dem folgenden Befehl:

nodetool flush system

Starten Sie schließlich den Apache Cassandra-Dienst neu, um die neue Konfiguration anzuwenden:

systemctl restart cassandra

Melden Sie sich jetzt mit folgendem Befehl in der CQL-Shell an:

cqlsh

Sie sollten sehen, dass der Name des Clusters jetzt in „HowtoForge Cluster“ geändert wurde:

Connected to HowtoForge 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> 

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben Apache Cassandra erfolgreich auf CentOS 8 installiert und konfiguriert. Wenn Sie Fragen haben, können Sie mich gerne fragen.

Das könnte dich auch interessieren …