2つのパーティションで動作するKafkaクラスターがあります。私は、パーティション数を3に増やす方法を探していました。しかし、トピックの既存のメッセージを失いたくはありません。私はKafkaを停止し、server.properties
ファイルを変更してパーティション数を3に増やし、Kafkaを再起動しました。しかし、それは何も変わらないようです。 Kafka ConsumerOffsetChecker
を使用しても、まだ2つのパーティションしか使用していないことがわかります。私が使っているカフカのバージョンは0.8.2.2です。バージョン0.8.1には、kafka-add-partitions.sh
というスクリプトがありましたが、それは私がこのトリックを行うかもしれないと思います。しかし、私は0.8.2でそのようなスクリプトは見ません。これを達成する方法はありますか?私は全く新しいトピックを作成して実験しましたが、server.properties
ファイルの変更ごとに3つのパーティションを使用しているようです。しかし、既存のトピックについては、気にしていないようです。カフカの既存のトピックにパーティションを追加することは可能ですか?0.8.2
答えて
あなたの代わりにthisスクリプトを使用することができようになっています。彼らは同じことを行うように見えるコードで
bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name
--partitions 40
を:
AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK(topic, partitionReplicaList, zkClient, true)
kafka-topics.sh
はthisコードの一部などで使用されるAddPartitionsCommandを実行kafka-add-partitionスクリプト。
キーを使用した場合の再分割を意識する必要がしかし:
パーティションに対して1つのユースケースは、パーティションに データを意味的にすることであることに注意してください、と追加するパーティションはのパーティションを変更しません既存のデータです。そのため、消費者がそのパーティションに頼っている場合は、これが妨げられる可能性があります。つまり、データが
hash(key) % number_of_partitions
でパーティション化されている場合、このパーティション分割はパーティションを追加することによって にシャッフルされますが、 は自動的にデータを再分配しようとはしません。パラメータのポート/ chrootの次の例外がスローされました--zookeeper:ERRORのjava.lang.IllegalArgumentExceptionが:トピックmy_topic_nameはZKパスzk_hostに存在しません:ポートを
は親切に私の場合値zk_hostであることに注意してください/ chroot。
だから、私は次のことを試してみました、働いた:
bin/kafka-topics.sh --alter --zookeeper zk_host:port --topic my_topic_name --partitions 10
'' chroot'は*オプションの構成設定です。文字通りとは解釈されません。 –
- 1. カフカのトピックのパーティションと利用可能なパーティションの違いは何ですか?
- 2. インデックスに既存のツリーを追加することは可能ですか
- 3. 既存のプロジェクトにWindowsサービスを追加することは可能ですか?
- 4. 既存のVNETにスケールセットを追加することは可能ですか
- 5. カフカ0.8.2コンシューマ
- 6. カフカのパーティション間でメッセージを表示するトピック
- 7. カフカ0.8.2カスタムAPIライブラリ?
- 8. csvファイルのデータを既存のmysqlテーブルに追加することは可能ですか
- 9. Excelの既存の画像にシェイプを追加することは可能ですか?
- 10. 既存のServlet-JspプロジェクトのSpringフレームワークに新しいモジュールを追加することは可能ですか
- 11. FluentMigratorを使用してカスケード削除を既存のリレーションシップに追加することは可能ですか
- 12. 反応カフカのサブスクリプションに新しくトピックを追加する
- 13. foreachRDDは1つのパーティションでカフカのトピックを読んでいますか?
- 14. 既存のデータベーステーブルに新しいユニークインデックスを追加することは可能ですか?
- 15. カフカのトピックとパーティションの命名規則は何でしょうか?
- 16. 異なるトピックからユーザーの存在を追跡することは可能ですか?
- 17. google-cloud-java SDKを使用して既存のテーブルに列を追加することは可能です
- 18. カフカのパーティションまたはトピックのサイズを確認する方法は?
- 19. GWT:MenuItemにイベントを追加することは可能ですか?
- 20. Terraformにコードを追加することは可能ですか
- 21. @ BindableにOnOnPropertyChangedCallbackを追加することは可能ですか?
- 22. PostGISをPipelineDBに追加することは可能ですか?
- 23. ブートストラップナビゲーションタブにアイコンを追加することは可能ですか?
- 24. カスタムコントロールにデザインタイムプロパティを追加することは可能ですか?
- 25. 既存のアンドロイドプロジェクトにサブプロジェクトを作成することは可能ですか?
- 26. 既存のアプリをDockerにデプロイすることは可能ですか?
- 27. 既存のdivを別の既存のdivに追加することはできますか?
- 28. 既存のDLLからメッセージボックスをブロックすることは可能ですか?
- 29. 既存のオブジェクトの一部を模擬することは可能ですか?
- 30. PerformSegueWithIdentifierで既存のViewControllerを使用することは可能ですか?
をapacheのカフカの最新リリースは0.8.2.2ですが、私はあなたが「2.10」を使用している疑い。バージョンをもう一度チェックしたいかもしれません。 – C4stor
@ C4stor実際、私はScala 2.10に基づいたKafkaを意味していました。これはあなたが0.8.2.2で述べたバージョンとまったく同じです。混乱させて申し訳ありません。私は私の質問を編集します。おかげさまで –