オプション/フラグ | 説明 |
---|---|
オプション | オプションの説明 |
-h | ホスト名。デフォルトは "localhost"です。ホストを指定しない場合、修復はコマンドが実行されたのと同じホスト上で実行されます。 |
-p | JMXポート。デフォルトは7199です。 |
-u | ユーザー名。 JMXセキュリティが有効な場合にのみ必要です。 |
-pw | パスワード。 JMXセキュリティが有効な場合にのみ必要です。 |
フラグ | フラグの説明 |
-地元 | 「ローカル」データセンター内のノードからのデータの比較およびストリーム処理のみ。 |
-pr | "Partitioner Range"の修復。レプリカのプライマリトークン範囲のみを修復します。同じデータを複数回修復することができないため、レプリカのすべての範囲を修復するよりも速くなります。このオプションを使用して1つのノードを修復する場合は、残りのクラスタにもこのオプションを使用する必要があります。 |
-パー | 並列に修復を実行します。修復作業を高速化しますが、クラスタの要求処理能力を大幅に制限します。 |
- ホスト | データをストリーミングするノードのカンマ区切りリストを指定できます。 「良い」ノードであることがわかっている場合に役立ちます。それはCassandra 2.1+の有効なオプションとして文書化されていますが、Cassandra 2.0でも動作します。 |
カッサンドラアンチエントロピー修復:
カッサンドラにおけるアンチエントロピー修復には、2つの異なる段階があります。効果的な修復を実行するには、両方を理解することが重要です。
Merkle Treeの計算 :ノードとそのレプリカの違いを計算します。
データストリーミング :Merkle Tree計算の結果に基づいて、データはあるノードから別のノードにストリーミングされる予定です。これは、レプリカ間でデータを同期させる試みです。
修復の停止 :
修復を停止するには、nodetoolからSTOP VALIDATIONコマンドを発行します。
$ nodetool stop validation
修理が完了したらどうすれば知ることができますか?
nodetool compactionstats
をチェックすることで、修復の第1段階(Merkle Tree計算)を確認nodetool compactionstats
ます。
修復ストリームを確認するには、 nodetool netstats
を使用します。修復ストリームもログに表示されます。次のようにシステムログにgrep
することができます:
$ grep Entropy system.log
INFO [AntiEntropyStage:1] 2016-07-25 07:32:47,077 RepairSession.java (line 164) [repair #70c35af0-526e-11e6-8646-8102d8573519] Received merkle tree for test_users from /192.168.14.3
INFO [AntiEntropyStage:1] 2016-07-25 07:32:47,081 RepairSession.java (line 164) [repair #70c35af0-526e-11e6-8646-8102d8573519] Received merkle tree for test_users from /192.168.16.5
INFO [AntiEntropyStage:1] 2016-07-25 07:32:47,091 RepairSession.java (line 221) [repair #70c35af0-526e-11e6-8646-8102d8573519] test_users is fully synced
INFO [AntiEntropySessions:4] 2016-07-25 07:32:47,091 RepairSession.java (line 282) [repair #70c35af0-526e-11e6-8646-8102d8573519] session completed successfully
アクティブな修復ストリームは、この(Bash)コマンドでも監視できます。
$ while true; do date; diff <(nodetool -h 192.168.0.1 netstats) <(sleep 5 && nodetool -h 192.168.0.1 netstats); done
ref: nodetoolの修復が完了したらどうすればいいですか?
スタックされた、または孤立した修復ストリームを確認する方法
各ノードで、 nodetool tpstats
使用してこれを監視し、 "AntiEntropy"行で "ブロック"されているものを確認できます。
$ nodetool tpstats
Pool Name Active Pending Completed Blocked All time blocked
...
AntiEntropyStage 0 0 854866 0 0
...
AntiEntropySessions 0 0 2576 0 0
...