2016-11-16 65 views
1

我已經在3個節點上配置了cassandra 3.0.9,但我必須在某個時間只使用1個節點。我從網絡中斷開了其他兩個節點,也從Cassandra.yaml,rackdc和拓撲文件中刪除了這兩個節點的條目。暫時將多節點更改爲單個節點

當我檢查節點工具狀態時,它向我顯示兩個向下的節點。當我嘗試在cqlsh上執行任何查詢時,它給了我下面的錯誤:

Blockquote OperationTimedOut: errors={'127.0.0.1': 'Request timed out while waiting for schema agreement. See Session.execute_async and Cluster.max_schema_agreement_wait.'}, last_host=127.0.0.1

Blockquote Warning: schema version mismatch detected; check the schema versions of your nodes in system.local and system.peers.

我該如何解決這個問題?

回答

2

這不是從Cassandra集羣中刪除節點的方式。事實上,你正在做的事情非常危險。通常,你會使用nodetool decommission。如果您的其他兩個節點仍然完好並且處於脫機狀態,我建議暫時將它們重新聯機並讓其退役。

我也會拋出這個問題 - 除非所有密鑰空間的RF = 3,否則您可能會錯過上述步驟的大部分數據。 Cassandra在各自DC中的節點之間均勻分配數據。上面提到的退役步驟會重新分配數據。

現在,如果您沒有其他2個節點運行nodetool decommission,則可能必須刪除節點nodetool removenode,最壞的情況下爲nodetool assassinate

檢查這些文檔以供參考和完整步驟刪除節點:https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsAddingRemovingNodeTOC.html

+0

我已經做到了用nodetool並刪除這兩個節點。是的,我可以理解它在生產時是否危險,但目前我們正處於測試階段,所以現在就可以。 感謝您的回覆,並告知MarcintheCloud –