Beautiful

Something never changes, but something does.

kafka topic迁移

1、生成move.json,用户生成迁移信息,示例:

{
    "topics": [
        {
            "topic": "TOPIC名称"
        }
    ],
    "version": 1
}

2、生成迁移建议,将“Proposed partition reassignment configuration”后的内容写入reassign.json,根据需要进行修改

kafka-reassign-partitions.sh --broker-list "broker id list,逗号分隔" --topics-to-move-json-file move.json --zookeeper ZK地址 --generate

reassign.json样例:

{
    "version": 1,
    "partitions": [
        {
            "topic": "TOPIC_NAME",
            "partition": 0,
            "replicas": [
                1,
                2
            ]
        },
        {
            "topic": "TOPIC_NAME",
            "partition": 3,
            "replicas": [
                1,
                2
            ]
        },
        {
            "topic": "TOPIC_NAME",
            "partition": 2,
            "replicas": [
                1,
                2
            ]
        },
        {
            "topic": "TOPIC_NAME",
            "partition": 1,
            "replicas": [
                1,
                2
            ]
        }
    ]
}

3、开始迁移,会提示当前状态的json,用于回滚,自行拷贝备份

kafka-reassign-partitions.sh --broker-list "broker id list,逗号分隔" --reassignment-json-file reassign.json --zookeeper  ZK地址  --execute

4、查看迁移进度

kafka-reassign-partitions.sh --verify --zookeeper  ZK地址--reassignment-json-file reassign.json

5、查看迁移后的分布情况

kafka-topics.sh --zookeeper  ZK地址 --topic TOPIC名称 --describe