2

私は Cassandra 2.0 を使用しており、クラスターは 3 つのノードでセットアップされています。3 つのノードすべてを示すノードツールのステータスとリング。すべてのノードにトークンを指定しました。

以下の手順に従って、1 つのノードの構成を変更しました。

1) sudo service cassandra stop
2) 更新された cassandra.yaml (thrift_framed_transport_size_in_mb を更新するため)
3) sudo srevice cassandra start

特定が正常に開始されず、system.log に以下の例外が表示されます。

org.apache.cassandra.exceptions.ConfigurationException: トークンの数を 1 から 256 に変更できません

ノードまたはクラスター内の既存のデータを失わずにノードを再起動するための最良のメカニズムは何ですか?

4

2 に答える 2

2

トークンの数を 1 から 256 に変更しようとしているときにも、このエラーが発生していました。これを解決するために、次のことを試しました。

シナリオ: 4 ノードの DSE (4.6.1) cassandra クラスターがあります。FQDN が d0.cass.org、d1.cass.org、d2.cass.org、d3.cass.org であるとします。ここでは、ノード d0.cass.org と d1.cass.org がシード プロバイダーです。私の目的は、cassandra.yaml ファイルの num_token 属性を変更してノードを有効にすることです。

ノードごとに実行する手順 (一度に 1 つずつ):

  • 1 つのノードで nodetool decommission を実行します。nodetool decommission
  • 廃止されたノードで cassandra プロセスを強制終了します。ps ax | grep dseと を使用して dse cassandra のプロセス ID を見つけます。kill <pid>
  • ノードの廃止が成功したら、残りのノードの 1 つに移動し、 を使用して cassandra クラスターのステータスを確認しますnodetool status。廃止されたノードはリストに表示されません。
  • アクティブな seed_providers の 1 つに移動し、次のように入力します。nodetool rebuild
  • 廃止されたノードで、cassandra.yaml ファイルを開き、num_tokens: 256 のコメントを外します。ファイルを保存して閉じます。このノードが元々シード プロバイダーであった場合は、その IP アドレスが cassandra.yaml ファイルのシード: リストから削除されていることを確認してください。これを行わないと、クラスタ トポロジに関する古い情報が、新しいシード ノードによって提供される新しいトポロジの妨げになります。正常に起動すると、シード リストに再度追加できます。
  • opscenter の対応するオプションを使用するか、各ノードで cassandra を手動で停止してから再度開始して、残りのクラスタを再起動します。
  • 最後に、コマンドを使用して cassandra を起動しdse cassandraます。

これはうまくいくはずです。

于 2015-11-05T22:20:03.310 に答える