2013-12-12 15 views
6

カサンドラバージョン1.2.9。 5つのノードのクラスタですが、ノードの1つがハードウェアの故障や修理/交換によってダウンしています。ETAは不明です。私は下位ノードを廃止/削除したい(通知がすべてのログを混乱させる)。 nodetool removenodeは、ホストIDが必要な場合を除いて完璧なようです。ダウンノードにはホストIDがありません(状態ではヌルとして表示されます)。カサンドラ - 死んだノードを削除する方法

removetokenはもはやnodetoolのオプションではありません。

このデッドノードを削除する適切な方法は何ですか?

+0

私はDataStaxの「dead nodeの置き換え」ドキュメントへのリンクを提供するつもりでしたが、最後のステップは、あなたのためには動作しないと述べた 'nodetool removenode'を実行することです。あなたは 'nodetool move'を見てみましたか?理論的には、置換ノードを起動し(initial_tokenをデッドノードの-1に設定して)、目的のトークン範囲に移動することができます。 – Aaron

+1

私はまだサーバを交換していません。私は試着を試みた。このバージョンでは廃止予定です。私は取り外しを試みた。ホストIDがないため、失敗します。私は移動を試み、それは十分なストリーミングソースを持っていませんでした。次はJMXコマンドです:シェルモードに入っています。 %jmx_invoke -m org.apache.cassandra.net:type=Gossiper unsafeAssassinateEndpoint 。これは、NULLポインタ例外で失敗しました。まだこれに取り組んでいます。 –

+6

以下の手順を実行します。 - 1)残りの各ノードで、cassandra-env.shファイルのJVM_OPTSに-Dcassandra.load_ring_state = falseを追加して再起動します。 - 2)nodetoolステータスを再度実行し、不要なノードがなくなったことを確認します。 - 3)各ノードで、system.peersからdeleteを実行します。ただし、peer = '[dead nodeのIPアドレス]'。 via cqlsh - 4)各ノードのcassandra-env.shから-Dcassandra.load_ring_state = falseを削除して再起動します。 –

答えて

0

問題は古いバージョンのcassandraです。しかし、公式の解決策は、cassandraの任意のバージョンに適用する必要があります。 - https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsGossipPurge.html

基本的には、クラスタを停止し、ピアリングに関連するスレッドを削除し、ゴシップの状態をクリアしてクラスタを再起動するよう指示します。それは意味をなさない。

関連する問題