Müssen Sie nodetool repair
auf jedem Knoten in einem Cluster ausgeführt werden, oder müssen Sie ihn nur auf einem Knoten ausführen, und von dort aus kümmert sich Cassandra um den Rest?
quelle
Müssen Sie nodetool repair
auf jedem Knoten in einem Cluster ausgeführt werden, oder müssen Sie ihn nur auf einem Knoten ausführen, und von dort aus kümmert sich Cassandra um den Rest?
Beim Durchsuchen der Dokumentation fällt es mir schwer, eine Referenz dafür zu finden, aber die kurze Antwort lautet "Ja", die Sie nodetool repair
auf jedem Knoten in Ihrem Cluster ausführen müssen. Am ehesten finde ich die Dokumentation zum Reparieren von Knoten, aus der hervorgeht, dass Sie nicht mehr als einen Knoten in Ihrem Cluster gleichzeitig reparieren sollten.
Sie können die Reparatur auch mit dem -pr
Flag ausführen , wodurch der Reparaturvorgang auf den ersten Tokenbereich beschränkt wird, für den der aktuelle Knoten verantwortlich ist. Dies verringert die Doppelarbeit beim Ausführen auf den verbleibenden Knoten.
-pr
auf jedem Knoten mit starte, deckt das den gesamten Schlüsselbereich ab?-pr
auf jedem Knoten ausführen, werden alle Schlüsselbereiche abgedeckt.-pr
Flagge Zeit sparen .Wie es sich verhält, hängt von Ihrer Konfiguration, der verwendeten Version von Cassandra und der Ausführung des Reparaturbefehls ab.
Wenn Sie nur
nodetool repair
auf einem einzelnen Knoten in einem Cluster ausführen , werden alle Daten (Tokenbereiche) repariert, für die dieser Knoten verantwortlich ist, sowie die anderen Knoten, die für diese Daten verantwortlich sind.Wenn Sie den
nodetool repair
Befehl beispielsweise auf einem einzelnen Knoten in einem bestimmten Cluster ausführen würden :Es ist jedoch möglich zu definieren, welche Hosts und Rechenzentren mithilfe der Flags
-hosts
und repariert werden sollen-dc
. Wenn Sie außerdem das-pr
Flag verwenden (das nur den ersten Token-Bereich auswählt, für den der Knoten verantwortlich ist), müssen Sienodetool repair -pr
auf allen Knoten im Cluster ausgeführt werden.Eine weitere zu beachtende
-inc
Flagge ist die Flagge, die in Cassandra 2.1 enthalten war. Diese Option repariert nur neue Daten (Daten, die zuvor nicht repariert wurden). Seien Sie vorsichtig, wenn Sie sich darauf verlassen, insbesondere wenn Sie häufig Daten löschen. ( mehr dazu )Beachten Sie außerdem, dass die Standardreparaturen in Cassandra variieren können. Ab Cassandra 2.1 wird beim Ausführen nur
nodetool repair
standardmäßig eine vollständige sequenzielle Reparatur ausgeführt. Sie möchten nachschauen, was Ihre Version tut.Weitere Informationen zum Thema:
https://www.datastax.com/dev/blog/repair-in-cassandra
quelle
Nein, Sie müssen nicht auf jedem einzelnen Knoten ausgeführt werden.
nodetool repair
Läuft auf einer Gruppe von Knoten, was in der Dokumentation eindeutig angegeben ist .Sie können die Knoten oder Teile von Daten einschränken, für die Sie die Reparatur ausführen möchten. Beispielsweise können Sie eine
-pr
Option für den Bereich des Partitionierers angeben, den Bereich, für den der Knoten verantwortlich ist. Dies muss jedoch auf dem gesamten Cluster ausgeführt werden. Wenn Sie jedoch auswählen-local
, werden die Knoten im lokalen Datencenter des Knotens repariert.quelle
nodetool repair
auf einem einzelnen Knoten reicht nicht aus, um alle replizierten Daten auf allen Knoten in allen Konfigurationen zu reparieren. Das Ausführennodetool repair
auf einem einzelnen Knoten repariert nur Daten, die auf diesem Knoten repliziert wurden. (Durch Hinzufügen der-pr
Option wird die Reparatur auf Daten beschränkt, für die dieser Knoten das erste Replikat ist.) Wenn sich jedoch Daten in Ihrem Cluster befinden, die nicht auf diesem Knoten repliziert wurden, müssen Sie sienodetool repair
auf zusätzlichen Knoten ausführen .