6.3.2. パーティションの再割り当て
kafka-reassign-partitions.sh
ユーティリティーは、パーティションを別のブローカーに再割り当てするために使用されます。
これには、以下の 3 つのモードがあります。
--generate
- トピックとブローカーのセットを取り、再割り当て JSON ファイル を生成します。これにより、トピックのパーティションがブローカーに割り当てられます。再割り当て JSON ファイルを生成する簡単な方法ですが、トピック全体で動作するため、使用方法は常に適切なではありません。
--execute
- 再割り当て JSON ファイル を取り、クラスターのパーティションおよびブローカーに適用します。パーティションを取得するブローカーは、パーティションリーダーのフォロワーになります。特定のパーティションについて、新規ブローカーが ISR をキャッチおよび結合すると、古いブローカーがフォロワーになり、そのレプリカが削除されます。
--verify
-
--verify
は、--execute
ステップと同じ 再割り当て JSON ファイル を使用して、ファイル内のすべてのパーティションが目的のブローカーに移動されたかどうかを確認します。再割り当てが完了すると、有効なスロットルも削除されます。スロットルを削除しないと、再割り当てが完了した後もクラスターは影響を受け続けます。
クラスター内で 1 つの再割り当てのみを実行でき、実行中の再割り当てをキャンセルすることはできません。再割り当てをキャンセルする必要がある場合は、それが完了するまで待機してから、別の再割り当てを実行して最初の再影響を元に戻す必要があります。kafka-reassign-partitions.sh
によって、元に戻すための再割り当て JSON が出力の一部として生成されます。大規模な再割り当ては、進行中の再割り当てを停止する必要がある場合に備えて、複数の小さな再割り当てに分割するようにしてください。
6.3.2.1. 再割り当て JSON ファイル リンクのコピーリンクがクリップボードにコピーされました!
再割り当て JSON ファイル には特定の構造があります。
ここで <PartitionObjects> は、以下のようなコンマ区切りのオブジェクトリストになります。
"log_dirs"
プロパティーは任意で、パーティションを特定のログディレクトリーに移動するために使用されます。
以下は、トピック topic-a
およびパーティション 4
をブローカー 2
、4
、および 7
に割り当て、トピック topic-b
およびパーティション 2
をブローカー 1
、5
、および 7
に割り当てる、再割り当て JSON ファイルの例になります。
JSON に含まれていないパーティションは変更されません。