2013-05-02 2 views
12

3つのノードcassandraクラスタに複製係数2を設定しました。ノードにはdsc1.2.3またはdsc1.2.4が実行されていました。各ノードのnum_token値は256で、initial_tokenはコメントされています。この3つのノードクラスタは完全に平衡しており、すなわちそれぞれがデータの約30%を所有していた。新しいノードを追加した後にcassandraクラスタを再調整する方法

ノードの1つがクラッシュして、新しいノードを開始し、ノード・ツールがクラッシュしたノードを削除しました。新しいノードはクラスタに追加されましたが、2つの古いノードではデータの大部分(47.0%と52.3%)が使用され、新しいノードではデータの0.7%しか使用されませんでした。

nodetoolステータスの出力は

Datacenter: xx-xxxx 
=================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address   Load  Tokens Owns Host ID        Rack 
UN 10.xxx.xxx.xxx 649.78 MB 256  47.0% ba3534b3-3d9f-4db7-844d-39a8f98618f1 1c 
UN 10.xxx.xxx.xxx 643.11 MB 256  52.3% 562f7c3f-986a-4ba6-bfda-22a10e384960 1a 
UN 10.xxx.xxx.xxx 6.84 MB 256  0.7% 5ba6aff7-79d2-4d62-b5b0-c5c67f1e1791 1c 

どのように私は、このクラスタのバランスをとるんですか?

+0

'nodetool status'の出力を含めることはできますか? – Richard

+0

num_tokens = 256で新しいノードを開始しましたか? – Richard

+0

'nodetool status'の出力を追加した投稿を編集しました – user2341900

答えて

6

新しいノードでの修復の実行については言及していませんが、まだ実行していない場合は、新しいノードでデータが不足している可能性があります。

ノーデール修復を実行するまで、新しいノードには新しいデータが書き込まれるか、または読み込み修復が引き込まれるデータだけが保持されます。vノードでは、通常は再バランスする必要はありません。私はvnodeを正しく理解していますが、個人的にまだvnodeを使用していないので、間違いかもしれません。

4

新しいノードがブートストラップされていないようです。あなたはcassandra.yamlにauto_bootstrap=trueを追加しましたか?

ブートストラップしたくない場合は、新しいノードでnodetool repairを実行し、配布が公平になるまで他の2ノードでnodetool cleanupを実行できます。

関連する問題