...
- User specifies a list of log directories, one log directory per replica, for each topic partition in the reassignment json file that is provided to kafka-reassignemnt-partitions.sh. The log directory specified by user must be either "any", or absolute path which begins with '/'. See Scripts
section for the format of this json file.
- In addition to creating znode at /admin/reassign_partitions with the replica assignment, the script will also send ChangeReplicaDirRequest
to the leader brokers of partitions for which the log directory path in the assignment is not "any". The script needs to retry up to a configured amount of time if ChangeReplicaDirResponse
shows ReplicaNotAvailableException
. This is needed to wait for controller to send LeaderAndIsrRequest
to the broker if replica hasn't already been created there.
- Broker handles ChangeReplicaDirRequest
as specified in the section "How to move replica between log directories on the same broker".
...
Code Block |
---|
{ "version" : int, "partitions" : [ { "topic" : str, "partition" : int, "replicas" : [int], "log_dirs" : [str] <-- NEW. A log directory can be either "any", or a valid absolute path that begins with '/' }, ... ] } |
3) Add optional argument --timeout to kafka-reassignemnt-partitions.sh. This is because kafka-reassignemnt-partitions.sh may need to re-send ChangeReplicaDirRequest
to broker if replica hasn't already been created there.
Changes in Operational Procedures
...