The partition reassignment tool can also be used to selectively move replicas of a partition to a specific set of brokers. When used in this manner, it is assumed that the user knows the reassignment plan and does not require the tool to generate a candidate reassignment, effectively skipping the --generate step and moving straight to the --execute step
For instance, the following example moves partition 0 of topic foo1 to brokers 5,6 and partition 1 of topic foo2 to brokers 2,3:
The first step is to hand craft the custom reassignment plan in a json file:
1 2 | > cat custom-reassignment.json { "version" :1, "partitions" :[{ "topic" : "foo1" , "partition" :0, "replicas" :[5,6]},{ "topic" : "foo2" , "partition" :1, "replicas" :[2,3]}]} |
Then, use the json file with the --execute option to start the reassignment process:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | > bin /kafka-reassign-partitions .sh --zookeeper localhost:2181 --reassignment-json- file custom-reassignment.json --execute Current partition replica assignment { "version" :1, "partitions" :[{ "topic" : "foo1" , "partition" :0, "replicas" :[1,2]}, { "topic" : "foo2" , "partition" :1, "replicas" :[3,4]}] } Save this to use as the --reassignment-json- file option during rollback Successfully started reassignment of partitions { "version" :1, "partitions" :[{ "topic" : "foo1" , "partition" :0, "replicas" :[5,6]}, { "topic" : "foo2" , "partition" :1, "replicas" :[2,3]}] } |
The --verify option can be used with the tool to check the status of the partition reassignment. Note that the same expand-cluster-reassignment.json (used with the --execute option) should be used with the --verify option:
1 2 3 4 | > bin /kafka-reassign-partitions .sh --zookeeper localhost:2181 --reassignment-json- file custom-reassignment.json --verify Status of partition reassignment: Reassignment of partition [foo1,0] completed successfully Reassignment of partition [foo2,1] completed successfully |