So entfernen Sie abgestorbene Knoten aus der Cassandra-cluster?
- Ich habe das cassandra-cluster mit 12 Knoten auf EC2.
- Wegen einiger Fehler verloren wir einen der Knoten komplett.Ich meine, dass die Maschine nicht mehr existieren.
- Also ich habe das neue EC2-Instanz mit verschiedenen ip-und ebenso, wie der der Toten Knoten und ich hatte auch das backup der Daten auf die Knoten, so dass es funktioniert gut
- Aber das problem ist das tote Knoten, die ip scheint immer noch als ein unerreichbarer Knoten im cluster beschreiben.
- So, dass node (EC2-instance), existiert nicht mehr, die ich nicht nutzen kann nodetool Außerbetriebnahme oder nodetool disablegossip
Wie kann ich loswerden dieser nicht erreichbaren Knoten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Normalerweise beim ersetzen eines Knoten, den Sie wollen, um den neuen Knoten das token zu
(failure node's token) - 1
und lassen Sie es bootstrap. Als der 1.0 gibt es jetzt ein flag können Sie festlegen, auf Start zu ersetzen eines Toten Knoten: "Kassandra.replace_token=".Da Sie bereits Hinzugefügt haben, wird der neue Knoten mit dem gleichen token gibt es ein extra Schritt:
(failure node's token) - 1
mitnodetool move
nodetool removetoken <failed node's token>
von einem der Knotennodetool cleanup
auf jedem KnotenDies sind im wesentlichen die pre 1.0 Anleitung für das ersetzen eines Toten Knoten mit der zusätzlichen token bewegen.
nodetool removetoken
. Dein problem ist, würde sich auch entfernen Sie die Ersatz-Knoten. So müssen Sie bewegen Sie den Ersatz-Knoten die token-token-1, bevor Sie dieremovetoken
.nodetool removetoken force
die Cassandra sagen, nicht zu warten, für die Bestätigung der von den Toten Knoten.Ich hatte das gleiche problem und habe es behoben mit
removenode
, die nicht erforderlich ist, Sie zu finden, und ändern Sie die Knoten-token.Erste, die die node-UUID:
Wie Sie sehen können die .201 und .202 sind tot und auf einem anderen Netzwerk. Diese wurden geändert, um .91 und .92 ohne ordnungsgemäße Stilllegung und Wiederinbetriebnahme. Ich war arbeiten an der Installation der Netzwerk-und ein paar Fehler gemacht...
Zweite, entfernen Sie die .201 mit dem folgenden Befehl:
(in älteren Versionen war es nodetool entfernen ...)
Aber genau wie für die
nodetool removetoken ...
blockiert... (siehe Kommentar von samarth in psandord Antwort) Allerdings hat es eine Nebenwirkung, es gibt diese UUID in eine Liste der Knoten entfernt werden. So als Nächstes können wir die Kraft die Entfernung mit:(in älteren Versionen war es nodetool entfernen ...)
Nun der Knoten akzeptiert der Befehl es sagt mir, dass es ist, entfernen Sie den ungültigen Eintrag:
Sehen wir auch, dass es kommuniziert mit den beiden anderen Knoten sind und somit dauert es ein wenig Zeit, aber es ist immer noch Recht schnell.
Neben einem
nodetool status
nicht zeigen, das .201 Knoten. Ich wiederhole mit .202 und nun wird der status ist sauber.Danach können Sie auch wollen, führen Sie eine Bereinigung wie bereits in psanford Antwort:
Die Bereinigung ausgeführt werden soll auf allen Knoten, eins nach dem anderen, um sicherzustellen, dass die änderung vollständig berücksichtigt.