Cassandra 資料庫如何移除失效的節點服務(Windows Server 適用)
Apache Cassandra 是一套開源分散式 NoSQL 資料庫系統。
結合 Google Big Table 與 Amazon DynamoDB 的資料模型與分散式架構所設計。
由於 Cassandra 具有良好的可延伸性和效能,被 Apple, Comcast, Instagram, Spotify, eBay, Netflix 等知名網站所採用,成為了一種流行的分散式結構化資料儲存方案。
我原本架了 2 台伺服器在跑 Cassandra 資料庫,簡稱伺服器 A 與 B,它們彼此在相同的叢集裡面。
其中伺服器 A 因為要升級 Windows Server 2019 所以就直接關機重灌了。
當我回到伺服器 B 的時候,所運行的 Cassandra 資料庫就出現了錯誤,找不到伺服器 A 的 Cassnadra 服務。
畫面中每隔幾秒就出現了找不到節點服務的錯誤。
這時候我打算先將伺服器 B 的 Cassandra 移除失效的節點。
等待伺服器 A 重灌完成之後,我再將節點附加回來。
接下來我將會說明如何在伺服器 B 移除 Cassandra 失效的節點。
Contents
檢查服務狀態
切換到 Cassandra bin 目錄
找到 Cassandra 運行的目錄之下的 bin 目錄。
將目錄複製下來。
打開「CMD」命令提示字元。
切換 cmd 的目錄到 Cassandra 目錄之下
CMD 指令
1 |
cd C:\Program Files\apache-cassandra-3.11.10\bin |
查詢節點狀態指令
輸入 CMD 指令查詢節點狀態
1 |
nodetool status |
會看到我的節點上面有 2 個 Cassandra 服務,其中第 1 個節點狀態為 DN,第 2 個節點狀態為 UN。
DN 表示停止,UN 表示運行中。
節點狀態說明
節點狀態由 2 種狀態組成。
第 1 個字表示節點是否正常運行。
字元意義為 U=運行、D=停止。
第 2 個字表示與叢集有關的節點狀態。
字元意義為 N=正常、L=離開、J=加入、M=移動。
複製失效節點 Host ID
第 1 台已失效的節點 Host ID 是 941f7000-e158……. (注意ID 太長會換行)
此 Host ID 先複製下來等等會用到。
移除節點指令
使用移除節點指令並加上失效節點 Host ID。
1 |
nodetool removenode 941f7000-e158……. |
執行後就可以移除失效的節點。
移除節點訊息
當移除之後,在原有的運行畫面上也會看到移除訊息。
重新查詢節點狀態
再次輸入指令
1 |
nodetool status |
會看到目前所有的 Cassandra 節點只剩一台了。
相關學習文章
如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝