Cassandraクラスタ管理-例外ノードの置き換え


Cassandraクラスタ管理-例外ノードの置き換え
異常クラスタノードを置き換え、JVM起動フラグDcassandraを使用する.replace_address_first_boot=起動します.このアトリビュートをオンにすると、ノードはスリープ状態で起動し、その間に他のすべてのノードが閉じているのが表示されます.代替ノードは、クラスタ内の残りのノードからデータの起動をすぐに開始します.新しいノードの通常のブートの主な違いは、この新しいノードがこの段階で書き込みを受け入れないことです.ブートが完了すると、ノードは「UP」とマークされ、新しいノードデータが独立して存在することを保証するために暗黙的な起動に依存します.(ブートが開始されてから新しいノードは書き込みを受け付けないため).置換プロセスに要する時間がmax_を超える場合hint_window_in_msでは、ブート中に進行中の書き込みを逃したため、配置されたノードが再び一致するようにrepairを実行する必要があります.
注意:
このドキュメントはシステムドキュメントの一部にすぎません.前のドキュメントの詳細は、テスト準備+オフライン正常ノードを参照してください.https://blog.51cto.com/michaelkang/2419518ノード異常再起動:https://blog.51cto.com/michaelkang/2419524新しいノードを追加:https://blog.51cto.com/michaelkang/2419521例外ノードを削除するにはhttps://blog.51cto.com/michaelkang/2419525
クラスタのステータスの表示
[root@kubm-01 ~]# nodetool status                        
Datacenter: dc1
--  Address         Load       Tokens       Owns    Host ID                               Rack
.......

       DN

DN  172.20.101.166  76.83 MiB  256          ?       88e16e35-50dd-4ee3-aa1a-f10a8c61a3eb  rack1

ノードの置換-注意事項
参照「##Cassandraクラスタ追加ノード」https://blog.51cto.com/michaelkang/2419521
プロファイルの変更
vi /etc/cassandra/conf/jvm.options  
           ,                    。                  .
47 
#-Dcassandra.replace_address=listen_address or broadcast_address of dead node

      :
-Dcassandra.replace_address=172.20.101.166

不要なデータのクリーンアップ、サービスの開始
             :
- data/
- commitlog/
- saved_caches/
rm -rf /var/lib/cassandra/

  :
/etc/init.d/cassandra start

クラスタデータのリカバリが完了するまで待機し、クラスタのステータスを確認します.
[root@kubnode-02 cassandra]# nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens       Owns    Host ID                               Rack
    UN  172.20.101.164  68.13 MiB  256          ?       dcbbad83-fe7c-4580-ade7-aa763b8d2c40  rack1
    UN  172.20.101.165  59.21 MiB  256          ?       b985de23-6ad1-40b9-a252-dbaeb5d4cb12  rack1
  =》UN  172.20.101.166  154.7 KiB  256  ?  f9a72fb2-55bd-40ec-b8e7-717404b80f19  rack1
    UN  172.20.101.167  71.93 MiB  256          ?       8808aaf7-690c-4f0c-be9b-ce655c1464d4  rack1
    UN  172.20.101.160  66.23 MiB  256          ?       57cc39fc-e47b-4c96-b9b0-b004f2b79242  rack1
    UN  172.20.101.157  55.23 MiB  256          ?       091ff0dc-415b-48a7-b4ce-e70c84bbfafc  rack1

クエリーの検証
cqlsh 172.20.101.157  -u cassandra -p cassandra 
cassandra@cqlsh> SELECT * from kevin_test.t_users; 

 user_id | emails                          | first_name | last_name
---------+---------------------------------+------------+-----------
       6 | {'[email protected]', '[email protected]'} |     kevin6 |      kang
       7 | {'[email protected]', '[email protected]'} |     kevin7 |      kang
       9 | {'[email protected]', '[email protected]'} |     kevin9 |      kang
       4 | {'[email protected]', '[email protected]'} |     kevin4 |      kang
       3 | {'[email protected]', '[email protected]'} |     kevin3 |      kang
       5 | {'[email protected]', '[email protected]'} |     kevin5 |      kang
       0 | {'[email protected]', '[email protected]'} |     kevin0 |      kang
       8 | {'[email protected]', '[email protected]'} |     kevin8 |      kang
       2 | {'[email protected]', '[email protected]'} |     kevin2 |      kang
       1 | {'[email protected]', '[email protected]'} |     kevin1 |      kang

テスト結果:
ノードを繰り返し再起動し、テーブルの内容が正常にクエリーされます.
参照情報:
https://blog.csdn.net/yuanjian0814/article/details/78768889https://www.jianshu.com/p/1dcca8f19894http://cassandra.apache.org/doc/latest/tools/nodetool/nodetool.html?highlight=setstreamthroughputhttps://zhaoyanblog.com/archives/684.htmlhttps://blog.csdn.net/yuanjian0814/article/details/78777735https://blog.csdn.net/iteye_19004/article/details/82648737