Wie man einen Cassandra-Cluster einrichtet

Wie man einen Cassandra-Cluster einrichtet

  • Orchestrierung
6 Minuten Lesezeit Aktualisiert Dec 6, 2018

Auf einen Blick: Anleitungen zum Einrichten eines Cassandra-Clusters auf zwei Rechnern, die Firewall-Konfigurationen und cassandra.yaml-Einstellungen abdecken. Der Leitfaden beschreibt Schritte zum Starten des Services, zur Überprüfung des Knotenstatus sowie zur Erstellung von Schlüsselflächen und Tabellen für die Datenreplikation.

  • Offene Firewall-Ports: 7000, 7001, 7199, 9042, 9160, 9142.
  • Bearbeiten Sie cassandra.yaml für Seed-Knoten und Listen-Adressen.

Hier zeigen wir, wie man einen Cassandra-Cluster einrichtet. Wir werden zwei Maschinen verwenden, 172.31.47.43 und 172.31.46.15. Zuerst öffnen Sie diese Firewall-Ports an beiden:

    7000
7001
7199
9042
9160
9142

Folge dann diesem Dokument , um Cassandra zu installieren und dich mit den Grundkonzepten vertraut zu machen. Installiere Cassandra auf jedem Knoten.

Konfiguration der Cluster-Einstellung

Es gibt keinen zentralen Master in einem Cassandra-Cluster. Stattdessen macht man jeden einzelnen auf die anderen aufmerksam und sie arbeiten zusammen. Zuerst werden wir /etc/cassandra/cassandra.yaml auf beiden Rechnern bearbeiten und die Werte wie in der untenstehenden Tabelle gezeigt festlegen. Ändere den Clusternamen noch nicht. Das machen wir später.

    • Seeds – setze die IP-Adresse auf einer Maschine als Seed. Es ist nicht notwendig, dass alle Rechner Seeds sind. Seeds sind Knoten, die Cassandra-Knoten verwenden, wenn du Cassandra Start startest, um andere Knoten zu finden.
    • listen_address – die IP-Adresse für Cassandra.
    • endpoint_snitch – dies wird verwendet, um zu bestimmen, wohin Daten geleitet und Replikate gesendet werden. Wir verwenden unten die Standardversion. Es gibt mehrere. Die anderen sind rack-aware, das heißt, sie würden eine Replik nicht auf dasselbe physische Lagerrack wie ein anderes legen. Wenn man das tut und das gesamte Rack versagt, könnten die Daten verloren gehen. Es gibt sogar eines (Ec2Snitch), das für Amazon EC2 entwickelt wurde und Daten über Amazon-Zonen verteilt werden kann.
Maschinen 172.31.46.15 Einstellungen Maschinen 172.31.47.43 Einstellungen
endpoint_snitch: SimpleSnitch – Setz: "Setz: 172.31.47.43" listen_address: 172.31.46.15
endpoint_snitch: SimpleSnitch – Setz: "Samen: 172.31.47.43" listen_address: 172.31.47.43

Laufen jetzt auf beiden Geräten:

    sudo service cassandra start

Dann warte ein paar Sekunden, bis die Discovery funktioniert, und führe dann auf beiden Rechnern aus:

    nodetool status

Beide Knoten sollten angezeigt werden:

    Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.31.46.15  245.99 KiB  256          100.0%            fb1d89bb-cbe2-488f-b2e7-da145bd2dde7  rack1
UN  172.31.47.43  196.01 KiB  256          100.0%            472fd4f0-9bb3-48a3-a933-9c9b07f7a9f6  rack1

Wenn du irgendeine Fehlermeldung bekommst, schau in /var/log/cassandra/system.log Jetzt ändern wir den Namen des Clusters vom Defaut. Führe cqlsh aus und füge dann das SQL unten ein. Cassandra repliziert diese Systemänderung nicht im gesamten Cluster, daher musst du es auf beiden Rechnern ausführen.

    UPDATE system.local SET cluster_name = 'Walker Cluster' where key='local';

Jetzt bearbeite /etc/cassandra/cassandra.yaml und ändere den Clusternamen auf beliebig. Es sollte auf beiden Geräten gleich sein:

    cluster_name: 'Walker Cluster'

Dann:

    sudo service cassandra restart

Führe diese Prüfung noch einmal durch:

    nodetool status 

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.31.46.15  312.4 KiB  256          100.0%            fb1d89bb-cbe2-488f-b2e7-da145bd2dde7  rack1
UN  172.31.47.43  294.71 KiB  256          100.0%            472fd4f0-9bb3-48a3-a933-9c9b07f7a9f6  rack1

Nun folgen wir diesen Anweisungen aus unserer Einführung zu cassandra, indem wir einige Daten erstellen. Wir werden sehen, dass die auf einem Knoten eingegebenen Daten auf einen anderen repliziert werden. Fügen Sie diese SQL-Befehle in csql ein:

    CREATE KEYSPACE Library
      WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };


CREATE TABLE Library.book (       
ISBN text, 
copy int, 
title text,  
PRIMARY KEY (ISBN, copy)
 );

CREATE TABLE  Library.patron (      
ssn int PRIMARY KEY,  
checkedOut set 
);


INSERT INTO  Library.book (ISBN, copy, title) VALUES('1234',1, 'Bible');
INSERT INTO  Library.book (ISBN, copy, title) VALUES('1234',2, 'Bible');
INSERT INTO  Library.book (ISBN, copy, title) VALUES('1234',3, 'Bible');
INSERT INTO  Library.book (ISBN, copy, title) VALUES('5678',1, 'Koran');
INSERT INTO  Library.book (ISBN, copy, title) VALUES('5678',2, 'Koran');

Melden Sie sich dann an der gegenüberliegenden Maschine an und überprüfen, ob die Daten dorthin kopiert wurden:

    select * from Library.book;

 isbn | copy | title
------+------+-------
 5678 |    1 | Koran
 5678 |    2 | Koran
 1234 |    1 | Bible
 1234 |    2 | Bible
 1234 |    3 | Bible

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Orchestrierung

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.