6
Cassandra 1.2.9版。五節點集羣,但其中一個節點因硬件故障而關閉,修復/更換ETA未知。我想解除/刪除下來的節點(通知混亂所有日誌)。 nodetool removenode似乎是完美的,除了它需要一個主機ID。下行節點沒有主機ID(狀態爲null):Cassandra - 如何刪除死亡節點
看來removetoken不再是nodetool的選項。
什麼是刪除這個死亡節點的正確方法?
Cassandra 1.2.9版。五節點集羣,但其中一個節點因硬件故障而關閉,修復/更換ETA未知。我想解除/刪除下來的節點(通知混亂所有日誌)。 nodetool removenode似乎是完美的,除了它需要一個主機ID。下行節點沒有主機ID(狀態爲null):Cassandra - 如何刪除死亡節點
看來removetoken不再是nodetool的選項。
什麼是刪除這個死亡節點的正確方法?
問題是爲卡桑德拉的舊版本。但官方的解決方案應該適用於任何版本的cassandra - https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsGossipPurge.html
那裏的步驟基本上告訴停止集羣,刪除與對等相關的sstables,清除八卦狀態並重新啓動集羣;這是有道理的。
我打算給你一個DataStax的「替換死節點」文檔的鏈接,但最後一步是執行一個'nodetool removenode',你所說的將不適合你。你有沒有試過看'nodetool move'?從理論上講,你可以調出替換節點(initial_token設置爲死節點,減1),然後將其移動到所需的令牌範圍。 – Aaron
我還沒有替換服務器。我嘗試了removetoken;在此版本中已棄用。我試過removenode;但沒有主機ID,因此失敗。我嘗試過移動,但沒有足夠的流媒體源。接下來是一個JMX命令:進入shell模式。 %jmx_invoke -m org.apache.cassandra.net:type=Gossiper unsafeAssassinateEndpoint。空指針異常失敗。仍在努力。 –
以下步驟DID工作: - 1)在剩餘的每個節點上,將-Dcassandra.load_ring_state = false添加到cassandra-env.sh文件中的JVM_OPTS並重新啓動。 - 2)再次運行nodetool狀態並確認不需要的節點已經消失。 - 3)在每個節點上,從system.peers執行delete,其中peer ='[死亡節點的IP地址]'; 4)從每個節點上的cassandra-env.sh中刪除-Dcassandra.load_ring_state = false並重新啓動。 –