I am confused with how kafka-reassignment-paritions works for __consumer_offsets topic?
I start with 1 zk and 1 kafka broker, create a test topic with replication=1, par
If you want to increase the replication factor for a topic, follow steps below:
Create a json file containing the reassignment plan. In your case, the file might look like:
{"version":1, "partitions":[
{"topic":"__consumer_offsets","partition":0,"replicas":[101,102]},
{"topic":"__consumer_offsets","partition":1,"replicas":[102,101]},
{"topic":"__consumer_offsets","partition":2,"replicas":[101,102]},
{"topic":"__consumer_offsets","partition":3,"replicas":[102,101]},
...
{"topic":"__consumer_offsets","partition":49,"replicas":[101,102]}
]}
Run command below to increase RF for this internal topic:
bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file reassign.json --execute
Then run kafka-topics.sh --describe
to see if replication factor is bumped up to 2.
You can use the reassignment tool to generate json for your own advantage. In your topics-to-move.json, instead of putting partition values, put {"version":1, "topics":[{"topic":"__consumer_offsets"}]}
Now when you run kafka-reassign-partitions --zookeeper zookeeper1:2181 --topics-to-move-json-file topics-to-move.json --broker-list "101,102" --generate
You will get recommended partition assignment from tool.
Save that file as reassignment-proposed.json and store old assignment into rollback.json.
Use that file to start reassignment /kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file reassignment-proposed.json --execute
Verify assignment using --verify
option