2016-09-07 9 views
0

カサンドラクラスターでは、すべてのノードがほぼ等しいデータを持つようにするにはどうしたらいいですか?カサンドラクラスター - ノード間で等しいデータを保存する

このシナリオが発生した場合は、ベストプラクティスは

おかげ

+0

'nodetool status'の出力を提供すると、あなたの質問に答える人々のコンテキストが追加されます。乾杯! – flightc

+0

あなたのパーティションキーを見たいかもしれません。パーティションキーはあなたのデータがどこに行くのかを決定します。 –

+0

主なことは、プライマリキーに十分なバラツキがあることを確認することです。主キーがハッシュされ、パーティションキーを使用してデータをノードに割り当てます。また、パーティションはノード間で分割されません。したがって、多くのデータに同じ主キーがある場合、そのデータはすべて同じノードに格納されます。これはホットスポットとも呼ばれます。 – LHWizard

答えて

0

何5〜10%のわずかな変化を期待しても大丈夫です。最も一般的な原因は、パーティションの分布が本当にランダムではなく(一部のノードではより多くのパーティション)、パーティションのサイズに大きなばらつきがあることです(最小パーティションは数キロバイトですが最大パーティションは2GB)。

考慮すべき他の2つのシナリオもあります。

SINGLE-TOKENのCLUSTER

トークンが正しく計算されない場合、一部のノードは、他のものに比べて、より大きなトークン範囲を有していてもよいです。 token generation toolを使用して、リングの周りに正しく配置されたトークンのリストを取得します。

クラスタがDataStax Enterpriseと共に配備されている場合、最も簡単な方法はrebalance your cluster with OpsCenterです。あなたはnum_tokensディレクティブでcassandra.yamlにトークンの同じ番号を割り当てた

vノードのCLUSTER

ことを確認します。

0

クラスタでByteOrderedPartitionerを使用していない場合を除き、利用可能なパーティショナーと、それが(通常)起こらない理由については、DataStaxのマニュアルhereを参照してください。

関連する問題