Ausführen einer Cluster-Datenbank mit mehreren Knoten mit Cassandra unter Ubuntu 14.04

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:

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.