10

Cassandra をスケールアップする方法についてはかなりの量のドキュメントがありますが、Cassandra を「スケール解除」してクラスターからノードを削除する方法に関する適切なリソースはありますか? ノードの電源を切り、クラスターを再び同期させ、繰り返すだけでよいのでしょうか?

その理由は、トラフィックの急増が予想されるサイトのためであり、毎日数千件のヒットが数日で数十万件にまで増加します。Web サーバー、Cassandra などの複数のインスタンスを起動して、サイトを事前に「立ち上げ」ます。リクエストの急増が収まった後、サーバーに料金を支払うのではなく、使用されなくなったインスタンスをオフにすることが目標です。それはただ座っているだけです。

4

3 に答える 3

8

ノードをシャットダウンしてクラスターをリバランスすると、削除されたノードにのみ存在し、まだ複製されていない一部のデータが失われるリスクがあります。

nodetool を使用すると、安全なクラスターの縮小を簡単に行うことができます。最初に、次を実行します。

nodetool drain

... 削除されたノードで、書き込みの受け入れを停止し、memtable をフラッシュするには、次のようにします。

nodetool decommission

ノードのデータを他のノードに移動してからノードをシャットダウンし、他のノードで実行するには:

nodetool removetoken

... クラスタからノードを完全に削除します。詳細なドキュメントは次の場所にあります: http://wiki.apache.org/cassandra/NodeTool

私の経験から、バッチではなく、ノードを 1 つずつ削除することをお勧めします。時間はかかりますが、ネットワークの停止やハードウェアの障害が発生した場合の安全性が大幅に向上します。

于 2012-11-09T09:00:17.973 に答える
2

ノードを削除すると、一部のノードを新しいトークンに移動して、クラスターのバランスを再調整する必要がある場合があります。計画的なダウンスケールでは、次のことを行う必要があります。

1 - 移動回数を最小限に抑えます。

2 - ノードを移動する必要がある場合は、転送されるデータの量を最小限に抑えます。

役に立つかもしれないクラスターの分散に関する記事があります: Balancing Your Cassandra Cluster

また、このビデオの冒頭では、ノードの追加操作とノードの削除操作、およびこれらの各操作におけるクラスターへの影響を最小限に抑えるための最善の戦略について説明しています。

これら 2 つの参考文献が、ダウンスケールを計画するのに十分な情報を提供してくれることを願っています。

于 2012-11-09T13:54:59.563 に答える