Einführung
Apache Cassandra ist ein hoch skalierbares Open-Source-Datenbanksystem, das bei Setups mit mehreren Knoten eine hervorragende Leistung erzielt.
Zuvor haben wir how to run durchgegangen ein Einzelknoten-Cassandra-Cluster. In diesem Tutorial erfahren Sie, wie Sie Cassandra installieren und verwenden, um einen Cluster mit mehreren Knoten unter Ubuntu 14.04 auszuführen.
Voraussetzungen
Da Sie im Begriff sind, einen Cassandra-Cluster mit mehreren Knoten zu erstellen, müssen Sie bestimmen, wie viele Server Sie in Ihrem Cluster haben möchten, und jeden einzelnen konfigurieren. Es wird empfohlen, aber nicht erforderlich, dass sie dieselben oder ähnliche Spezifikationen haben.
Um dieses Lernprogramm abzuschließen, benötigen Sie Folgendes:
-
Mindestens zwei Ubuntu 14.04-Server, die mit https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 konfiguriert wurden, werden in diesem Handbuch zur Ersteinrichtung angezeigt.
-
Jeder Server muss mit einer Firewall gesichert werden, indem this IPTables-Handbuch.
-
Auf jedem Server muss auch Cassandra installiert sein, indem Sie https://www.digitalocean.com/community/tutorials/how-to-install-cassandra-and-run-a-single-node-cluster-on-ubuntu-14-04 folgen [diese Cassandra Installationsanleitung].
Schritt 1 - Standarddaten löschen
Server in einem Cassandra-Cluster werden als "Knoten" bezeichnet. Was Sie derzeit auf jedem Server haben, ist ein Einzelknoten-Cassandra-Cluster. In diesem Schritt richten wir die Knoten so ein, dass sie als Cassandra-Cluster mit mehreren Knoten fungieren.
Alle Befehle in diesem und den folgenden Schritten müssen auf jedem Knoten im Cluster wiederholt werden. Stellen Sie daher sicher, dass so viele Terminals geöffnet sind, wie Knoten im Cluster vorhanden sind.
Der erste Befehl, den Sie auf jedem Knoten ausführen, stoppt den Cassandra-Daemon.
sudo service cassandra stop
Wenn dies abgeschlossen ist, löschen Sie das Standard-Dataset.
sudo rm -rf /var/lib/cassandra/data/system/*
Schritt 2 - Konfigurieren des Clusters
Die Konfigurationsdatei von Cassandra befindet sich im Verzeichnis "+ / etc / cassandra ". Diese Konfigurationsdatei, " cassandra.yaml +", enthält viele Direktiven und ist sehr gut kommentiert. In diesem Schritt ändern wir diese Datei, um den Cluster einzurichten.
Nur die folgenden Anweisungen müssen geändert werden, um einen Cassandra-Cluster mit mehreren Knoten einzurichten:
-
+ cluster_name +
: Dies ist der Name Ihres Clusters. -
+ -seeds +
: Dies ist eine durch Kommas getrennte Liste der IP-Adressen der einzelnen Knoten im Cluster. -
+ listen_address +
: Dies ist die IP-Adresse, die andere Knoten im Cluster verwenden, um eine Verbindung zu diesem herzustellen. Der Standardwert ist * localhost * und die IP-Adresse des Knotens muss geändert werden. -
+ rpc_address +
: Dies ist die IP-Adresse für Remote Procedure Calls. Der Standardwert ist * localhost *. Wenn der Hostname des Servers richtig konfiguriert ist, lassen Sie diesen unverändert. Andernfalls ändern Sie die IP-Adresse des Servers oder die Loopback-Adresse (+ 127.0.0.1 +
). -
+ endpoint_snitch +
: Name des Schnatzes, der Cassandra sagt, wie sein Netzwerk aussieht. Dies ist standardmäßig * SimpleSnitch *, das für Netzwerke in einem Rechenzentrum verwendet wird. In unserem Fall ändern wir es in * GossipingPropertyFileSnitch *, was für Produktions-Setups bevorzugt wird. -
+ auto_bootstrap +
: Diese Direktive ist nicht in der Konfigurationsdatei, daher muss sie hinzugefügt und auf * false * gesetzt werden. Dadurch verwenden neue Knoten automatisch die richtigen Daten. Dies ist optional, wenn Sie einem vorhandenen Cluster Knoten hinzufügen, dies jedoch erforderlich ist, wenn Sie einen neuen Cluster initialisieren, d. H. Einen Cluster ohne Daten.
Öffnen Sie die Konfigurationsdatei zum Bearbeiten mit + nano +
oder Ihrem bevorzugten Texteditor.
sudo nano /etc/cassandra/cassandra.yaml
Durchsuchen Sie die Datei nach den folgenden Anweisungen und passen Sie sie wie folgt an Ihren Cluster an. Ersetzen Sie "+" durch die IP-Adresse des Servers, an dem Sie gerade arbeiten. Die " - seeds: +" - Liste sollte auf jedem Server gleich sein und die durch Kommas getrennte IP-Adresse jedes Servers enthalten.
/etc/cassandra/cassandra.yaml
. . .
cluster_name: ''
. . .
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: ",,..."
. . .
listen_address:
. . .
rpc_address:
. . .
endpoint_snitch:
. . .
Fügen Sie am Ende der Datei die Anweisung + auto_bootstrap +
hinzu, indem Sie die folgende Zeile einfügen:
/etc/cassandra/cassandra.yaml
Wenn Sie mit dem Ändern der Datei fertig sind, speichern und schließen Sie sie. Wiederholen Sie diesen Schritt für alle Server, die Sie in den Cluster aufnehmen möchten.
Schritt 3 - Konfigurieren der Firewall
Zu diesem Zeitpunkt wurde der Cluster konfiguriert, aber die Knoten kommunizieren nicht. In diesem Schritt konfigurieren wir die Firewall so, dass Cassandra-Datenverkehr zugelassen wird.
Starten Sie zuerst den Cassandra-Daemon auf jedem neu.
sudo service cassandra start
Wenn Sie den Status des Clusters überprüfen, wird nur der lokale Knoten aufgelistet, da er noch nicht mit den anderen Knoten kommunizieren kann.
sudo nodetool status
Ausgabe
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.1.4 147.48 KB 256 ? f50799ee-8589-4eb8-a0c8-241cd254e424 rack1
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
Um die Kommunikation zu ermöglichen, müssen wir für jeden Knoten die folgenden Netzwerkports öffnen:
-
+ 7000 +
, das ist der TCP-Port für Befehle und Daten. -
+ 9042 +
, das ist der TCP-Port für den nativen Transportserver.+ cqlsh +
, das Cassandra-Befehlszeilenprogramm, stellt über diesen Port eine Verbindung zum Cluster her.
Öffnen Sie zum Ändern der Firewallregeln die Regeldatei für IPv4.
sudo nano /etc/iptables/rules.v4
Kopieren Sie die folgende Zeile in die INPUT-Kette und fügen Sie sie ein, um den Verkehr auf den oben genannten Ports zuzulassen. Wenn Sie die Datei "+ rules.v4 " aus dem Firewall-Lernprogramm verwenden, können Sie die folgende Zeile direkt vor dem " # Reject" -Kommentar einfügen.
Die durch "+ -s " angegebene IP-Adresse sollte die IP-Adresse eines anderen Knotens im Cluster sein. Wenn Sie zwei Knoten mit den IP-Adressen " 111.111.111.111 " und " 222.222.222.222 " haben, sollte die Regel auf dem " 111.111.111.111 " - Computer die IP-Adresse " 222.222.222.222 +" verwenden.
Neue Firewall-Regel
-A INPUT -p tcp -s -m multiport --dports 7000,9042 -m state --state NEW,ESTABLISHED -j ACCEPT
Speichern und schließen Sie nach dem Hinzufügen der Regel die Datei und starten Sie IPTables neu.
sudo service iptables-persistent restart
Schritt 4 - Überprüfen Sie den Clusterstatus
Wir haben jetzt alle Schritte ausgeführt, die erforderlich sind, um die Knoten in einen Cluster mit mehreren Knoten zu verwandeln. Sie können überprüfen, ob alle Teilnehmer miteinander kommunizieren, indem Sie ihren Status überprüfen.
sudo nodetool status
Ausgabe
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 192.168.1.4 147.48 KB 256 ? f50799ee-8589-4eb8-a0c8-241cd254e424 rack1
UN 192.168.1.6 139.04 KB 256 ? 54b16af1-ad0a-4288-b34e-cacab39caeec rack1
Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
Wenn Sie alle von Ihnen konfigurierten Knoten sehen können, haben Sie gerade einen Cassandra-Cluster mit mehreren Knoten erfolgreich eingerichtet.
Sie können auch überprüfen, ob Sie mit + cqlsh +
, dem Cassandra-Befehlszeilenclient, eine Verbindung zum Cluster herstellen können. Beachten Sie, dass Sie für diesen Befehl die IP-Adresse eines beliebigen Knotens im Cluster angeben können.
cqlsh 9042
Sie werden sehen, wie es sich verbindet:
Ausgabe
Connected to My DO Cluster at 192.168.1.6:9042.
[cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4]
Use HELP for help.
cqlsh>
Dann können Sie das CQL-Terminal verlassen.
exit
Fazit
Herzliche Glückwünsche! Sie haben jetzt einen Cassandra-Cluster mit mehreren Knoten, der unter Ubuntu 14.04 ausgeführt wird. Weitere Informationen zu Cassandra finden Sie auf der project’s Website. Wenn Sie Probleme mit dem Cluster beheben müssen, suchen Sie zuerst in den Protokolldateien im Verzeichnis "+ / var / log / cassandra" nach Hinweisen.