当前位置:   article > 正文

Kafka扩容之分区扩容

Kafka扩容之分区扩容

分区扩容

举例,主题“user_order”目前是1个分区,这里将该主题分区增加到6个,观察修改结果

kafka-topics.sh --partitions 6 --alter --zookeeper dn1:2181,dn2:2181,dn3:2181 --topic user_order
  • 1

这里只是修改分区数,但是数据还没有迁移过去

使用kafka提供的工具kafka-reassign-partitions.sh来迁移数据。迁移数据需要分三步做:

  1. 生成迁移计划
    先手动生成一个topic.json,内容如下。这里topic可以是一个列

    {
    "topics": [{
    	"topic": "user_order"
    }],
    "version": 1
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行如下语句 --topics-to-move-json-file

    ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --topics-to-move-json-file topic.json --broker-list "0,1,2,3,4" --generate
    
    • 1

    这句命令的意思是,将topic.json里的topic迁移到broker-list列表里列的broker上,会得到一个迁移执行计划

    Current partition replica assignment {
        "version": 1,
        "partitions": [....]
    }
    Proposed partition reassignment configuration {
        "version": 1,
        "partitions": [.....]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    新建一个文件reassignment.json,保存上边这些信息。其中Current partition replica assignment指当前的分区情况,Proposed partition reassignment configuration是计划的分区情况

  2. 数据迁移
    执行如下命令

    ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --reassignment-json-file reassignment.json --execute
    
    • 1
  3. 验证

    ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --reassignment-json-file reassignment.json --verify
    
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/643190
推荐阅读
相关标签
  

闽ICP备14008679号