2013-12-12 105 views
6

Cassandra 1.2.9版。五節點集羣,但其中一個節點因硬件故障而關閉,修復/更換ETA未知。我想解除/刪除下來的節點(通知混亂所有日誌)。 nodetool removenode似乎是完美的,除了它需要一個主機ID。下行節點沒有主機ID(狀態爲null):Cassandra - 如何刪除死亡節點

看來removetoken不再是nodetool的選項。

什麼是刪除這個死亡節點的正確方法?

+0

我打算給你一個DataStax的「替換死節點」文檔的鏈接,但最後一步是執行一個'nodetool removenode',你所說的將不適合你。你有沒有試過看'nodetool move'?從理論上講,你可以調出替換節點(initial_token設置爲死節點,減1),然後將其移動到所需的令牌範圍。 – Aaron

+1

我還沒有替換服務器。我嘗試了removetoken;在此版本中已棄用。我試過removenode;但沒有主機ID,因此失敗。我嘗試過移動,但沒有足夠的流媒體源。接下來是一個JMX命令:進入shell模式。 %jmx_invoke -m org.apache.cassandra.net:type=Gossiper unsafeAssassinateEndpoint 。空指針異常失敗。仍在努力。 –

+6

以下步驟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並重新啓動。 –

回答