4

Cassandra 1.0 を実行して、リングを 5 ノードから 4 ノードに縮小しています。そのためにnodetool decommission、削除したいノードで実行し、そのホストで cassandra を停止して使用nodetool movenodetool cleanup、残りの 4 ノードのトークンを更新しました。クラスターを再調整します。

シード ノードは A と B です。削除したノードは C です。

これは 6 ~ 7 日間は正常に機能しているように見えましたが、現在、4 つのノードのうちの 1 つは、廃止されたノードがまだリングの一部であると認識しています。

なぜこれが起こったのですか? また、廃止されたノードをリングから完全に削除する適切な方法は何ですか?

nodetool ring廃止されたノードがリングの一部であるとまだ考えている 1 つのノードでの出力は次のとおりです。

Address         DC          Rack        Status State   Load            Owns    Token                                       
                                                                               127605887595351923798765477786913079296     
xx.x.xxx.xx     datacenter1 rack1       Up     Normal  616.17 MB       25.00%  0                                           
xx.xxx.xxx.xxx  datacenter1 rack1       Up     Normal  1.17 GB         25.00%  42535295865117307932921825928971026432      
xx.xxx.xx.xxx   datacenter1 rack1       Down   Normal  ?               9.08%   57981914123659253974350789668785134662      
xx.xx.xx.xxx    datacenter1 rack1       Up     Normal  531.99 MB       15.92%  85070591730234615865843651857942052864      
xx.xxx.xxx.xx   datacenter1 rack1       Up     Normal  659.92 MB       25.00%  127605887595351923798765477786913079296     

nodetool ring他の 3 つのノードでの出力は次のとおりです。

Address         DC          Rack        Status State   Load            Owns    Token                                       
                                                                               127605887595351923798765477786913079296     
xx.x.xxx.xx     datacenter1 rack1       Up     Normal  616.17 MB       25.00%  0                                           
xx.xxx.xxx.xxx  datacenter1 rack1       Up     Normal  1.17 GB         25.00%  42535295865117307932921825928971026432      
xx.xx.xx.xxx    datacenter1 rack1       Up     Normal  531.99 MB       25.00%  85070591730234615865843651857942052864      
xx.xxx.xxx.xx   datacenter1 rack1       Up     Normal  659.92 MB       25.00%  127605887595351923798765477786913079296     

更新:ノード B を使用してノードを削除しようとしましnodetool removetokenたが、これはまだノード C がリング内にあると主張しているノードです。このコマンドは 5 時間実行されましたが、何も実行されなかったようです。nodetool ring唯一の変更点は、ノード Bで実行すると、ノード C の状態が「Leaving」になっていることです。

4

2 に答える 2

3

を使用して廃止されたノードを削除できましたが、オプションnodetool removetokenを使用する必要がありました。force

これが私のコマンドの出力です:

iowalker:~$ nodetool -h `hostname` removetoken 57981914123659253974350789668785134662

<waited 5 hours, the node was still there>

iowalker:~$ nodetool -h `hostname` removetoken status
RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx].
iowalker:~$ nodetool -h `hostname` removetoken force
RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx].
iowalker:~$ nodetool -h `hostname` removetoken status
RemovalStatus: No token removals in process.
于 2013-03-28T16:43:51.050 に答える
0

Cassandra 2.0 では、削除するノードで sh nodetool decommission を使用する必要があります。あなたの場合、cassandra-topology.properties のエントリを削除したかどうかを確認してください

于 2014-10-08T15:08:56.887 に答える