Cassandra Vollständige Reparatur

Cassandra Vollständige Reparatur

Apache Cassandra wurde entwickelt, um eine hohe Verfügbarkeit in allen Umgebungen zu gewährleisten. Dies bedeutet, dass die anderen Knoten im Cluster die angeforderten Vorgänge verarbeiten, wenn ein einzelner oder mehrere Knoten mit einem Cluster nicht verfügbar sind.

Wenn die nicht verfügbaren Knoten jedoch erreichbar sind, müssen sie wissen, welche Operationen sie innerhalb des Clusters verpasst haben. Daher verwendet Apache Cassandra eine Hinweisfunktion, um die Knoten (en) aller Funktionen zu alarmieren, die sie übersehen haben, während sie nicht verfügbar sind. Obwohl Hinweise die Benachrichtigung über die fehlenden Vorgänge durchführen können, garantiert es keine vollständige Datenkonsistenz über den Cluster. Diese Inkonsistenz kann zu Datenverlust führen, insbesondere wenn ein aktives Cluster die CRUD -Operationen multipliziert.

Um einen Datenverlust zu vermeiden, müssen Sie die Datenreparaturen durchführen, sodass die Knoten die Daten über den Cluster mit den aktualisierten Informationen synchronisieren können.

In diesem Tutorial werden Sie feststellen.

Arten von Reparaturen in Cassandra

Cassandra unterstützt zwei Haupttypen von Reparaturen:

  1. Inkrementelle Reparaturen
  2. Vollständige Reparaturen

Inkrementelle Reparaturen

Standardmäßig führt Cassandra eine inkrementelle Reparatur durch. Diese Reparatur repariert nur die Daten, die sich seit der vorherigen Reparatur geändert haben. Dies ist weniger ressourcenintensiv und sehr nützlich, wenn Sie die Reparaturen regelmäßig durchführen.

Ein Nachteil der inkrementellen Reparaturen ist, dass Cassandra nach dem Kennzeichnung der Daten nicht erneut versucht, sie erneut zu reparieren. Dies kann zu Datenverlust führen, insbesondere wenn die Reparatur korrupt wird.

Vollständige Reparaturen

Auf der anderen Seite sind vollständige Reparaturen viel ressourcenintensiv, insbesondere bei den E/A -Operationen. Sie führen jedoch die Datenreparaturen im Cluster durch und synchronisieren die richtigen, aktuellen Informationen.

Wir könnten diesen gesamten Artikel über die verschiedenen Arten von Reparaturen von Cassandra verbringen und wie Cassandra die Reparaturen umgeht. Lassen Sie uns jedoch in den Hauptverlauf des Artikels gelangen.

Der Befehl nodetool reparieren

Um eine Datenreparatur an einem Cassandra -Cluster durchzuführen, verwenden wir den Befehl nodetool reparaturbefehl. Die Befehlssyntax und Optionen sind wie gezeigt:

Abhängig von der angegebenen Methode führt der Reparaturbefehl entweder eine vollständige oder inkrementelle Reparatur an einem oder mehreren Knoten durch.

So führen Sie eine vollständige Reparatur in Cassandra Cluster durch

Lassen Sie uns in diesem Abschnitt sehen, wie wir eine vollständige Reparatur an einem Cassandra -Cluster durchführen können.

HINWEIS: Führen Sie die Befehle in diesem Tutorial in einem Cluster mit drei oder mehr Knoten am besten in diesem Tutorial aus, um eine vollständige Reparatur am besten zu veranschaulichen.

Schritt 1: Erstellen Sie einen Schlüsselraum mit einem Replikationsfaktor von 3 (oder für die Anzahl der verfügbaren Knoten).

Cassandra@CQLSH> KEYPACE -Entwicklung erstellen
… Mit replication = 'class': 'SimpleStrategy', 'replication_factor': 3;

Schritt 2: Erstellen Sie eine Tabelle und fügen Sie eine Beispieldaten hinzu.

Cassandra@CQLSH: Entwicklung> Tabelle T (ID int, Name Text, Alter int, Primärschlüssel (ID));

Schritt 3: Fügen Sie eine Beispieldaten hinzu.

Cassandra@CQLSH: Entwicklung> In T (ID, Name, Alter) Werte (0, 'user1', 2) einfügen;
Cassandra@CQLSH: Entwicklung> In T (ID, Name, Alter) Werte (1, 'user2', 3) einfügen;
Cassandra@CQLSH: Entwicklung> In T (ID, Name, Alter) Werte einfügen (2, 'user3', 5);

Schritt 4: Erhalten Sie eine Daten, die in der Tabelle gespeichert ist.

Cassandra@CQLSH: Entwicklung> Select * aus t;

Ausgang:

id | Alter | Name
----+-----+-------
1 | 3 | Benutzer2
0 | 2 | Benutzer1
2 | 5 | Benutzer3

Schritt 5: Aktualisieren Sie den Schlüsselspace, um 4 Repliken zu enthalten.

Cassandra@CQLSH: Entwicklung> Wechseln Sie Keyspace -Entwicklung
… Mit replication = 'class': 'SimpleStrategy', 'replication_factor': 4;

Erhöhen Sie die Anzahl der Repliken nach, ahmt den Betrieb eines Knotens im Cluster nach und kommt wieder hoch und kommt wieder hoch.

Wenn Sie den Replikationsfaktor erhöhen, erhalten Sie eine Nachricht, um eine Datenreparatur durchzuführen.

Schritt 6: Führen Sie eine vollständige Datenreparatur durch wie:

$ nodetool reparieren -Vollständige Entwicklung

Der vorherige Befehl führt eine vollständige Reparatur an allen Tabellen im angegebenen Schlüsselraum durch. Um nur eine Tabelle zu reparieren, können wir den folgenden Befehl ausführen:

$ nodetool reparieren -vollentwicklung t t

Dies sollte nur die Tabelle „T“ im Schlüsselraum reparieren.

Um den Reparaturstatus anzuzeigen, können Sie den Befehl TPStats verwenden:

$ nodetool tpstats

Abschluss

In diesem Artikel haben Sie gelernt, wie man die vollständige Reparatur von Cassandra mit dem Nodetool -Dienstprogramm durchführt.

Danke fürs Lesen!