it-swarm.com.de

Müssen Sie auf jedem Knoten eine Nodetool-Reparatur ausführen?

Müssen Sie nodetool repair Auf jedem Knoten in einem Cluster ausführen oder müssen Sie es nur auf einem Knoten ausführen und von dort aus Cassandra kümmert sich um den Rest?

12
2rs2ts

Beim Durchsehen der Dokumentation fällt es mir schwer, eine Referenz dafür zu finden, aber die kurze Antwort lautet "Ja". Sie müssen nodetool repair Auf jedem Knoten in Ihrem Cluster ausführen. Das nächstgelegene, das ich finden kann, ist das Dokumentation zum Reparieren von Knoten , was darauf hindeutet, dass Sie die Reparatur nicht auf mehr als einem Knoten in Ihrem Cluster gleichzeitig ausführen sollten.

Sie können Reparatur auch mit dem Flag -pr Ausführen, wodurch der Reparaturvorgang auf den ersten Tokenbereich beschränkt wird, für den der aktuelle Knoten verantwortlich ist. Dies reduziert die Doppelarbeit, wenn sie auf den verbleibenden Knoten ausgeführt wird.

9
Aaron

Wie es sich verhält, hängt von Ihrer Konfiguration ab, welche Version von Cassandra Sie verwenden) und wie Sie den Reparaturbefehl ausführen.

Wenn Sie nur nodetool repair Auf einem einzelnen Knoten in einem Cluster ausführen, werden alle Daten (Token-Bereiche) repariert, für die der Knoten verantwortlich ist, sowie alle anderen Knoten, die für diese Daten verantwortlich sind.

Wenn Sie beispielsweise den Befehl nodetool repair Auf einem einzelnen Knoten in einem bestimmten Cluster ausführen:

  • Wenn Sie einen Cluster mit drei Knoten mit einem Replikationsfaktor von drei ausführen, besitzen alle Knoten alle Daten, und daher werden Reparaturen für alle Knoten durchgeführt.
  • Wenn Sie einen Cluster mit sechs Knoten und einem Replikationsfaktor von 2 ausführen, werden die Daten nur auf zwei der sechs Knoten repariert. Die Reparatur muss auf zwei weiteren der verbleibenden vier Knoten eingeleitet werden.

Es ist jedoch möglich zu definieren, welche Hosts und Rechenzentren Reparaturen mit den Flags -hosts Und -dc Durchführen sollen. Wenn Sie das Flag -pr Verwenden (das nur den ersten Token-Bereich auswählt, für den der Knoten verantwortlich ist), müssen Sie außerdem nodetool repair -pr Auf all Knoten ausführen im Cluster.

Ein weiteres zu beachtendes Flag ist das Flag -inc, Das in Cassandra 2.1.) Enthalten wurde. 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 daz )

Beachten Sie außerdem, dass die Standardreparatur in Cassandra kann variieren. Ab Cassandra 2.1, wenn nur nodetool repair Ausgeführt wird) Standardmäßig wird eine vollständige sequentielle Reparatur durchgeführt. Sie sollten nachschlagen, was Ihre Version tut.

Weitere Informationen zum Thema:

https://www.datastax.com/dev/blog/repair-in-cassandra

5
Gene

Nein, Sie müssen nicht auf jedem einzelnen Knoten ausgeführt werden. nodetool repair läuft auf einer Reihe von Knoten, was in der Dokumentation klar angegeben ist.

Sie können die Knoten oder Teile von Daten einschränken, auf denen Sie die Reparatur ausführen möchten. Beispielsweise können Sie -pr Option für Partitioniererbereich, Bereich, für den der Knoten verantwortlich ist, dies muss jedoch auf dem gesamten Cluster ausgeführt werden. Aber wenn Sie -local, dann werden die Knoten im lokalen Datencenter des Knotens repariert.

2
nkzscorpion