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.