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 |