kafka之真香脚本(一)

写在前面

假如有一天,你单位业务不断增长发财了。有天老板说我们需要增加kafka集群节点,这是怎莫办?那就新增加一台机器呗!很简单我们只需要从已经部署好的Kafka节点中复制相应的配置文件,然后把里面的broker id修改成全局唯一的,最后启动这个节点即可将它加入到现有Kafka集群中。
那问题也就来了,我们发现新的节点并不能负载之前的旧数据,只能对新增加的Topic进行负载,不能对旧数据进行负载很是浪费资源。
这里介绍个kafka对分区重新分配的神器脚本:
kafka-reassign-partitions.sh

一. 分区重新分配

1.1 指定需要分区的Topic

  • 这里配制成json文件形式
    cat topic-partition.json
{
 "topics": [
 {
   "topic":"your topic's name"
 }
],
 "version":1
}

1.2 生成执行计划

  • 执行脚本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --topics-to-move-json-file topic-partition.json --broker-list "0,1" --generate
  • 参数说明
    --broker-list "0,1" 0,1代表kafka节点的broker.id 包含新旧节点啊
  • 保存结果
    cat result.json
    内容(示例)
{
    "version": 1,
    "partitions": [{
        "topic": "your topic's name",
        "partition": 4,
        "replicas": [0],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 1,
        "replicas": [1],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 2,
        "replicas": [0],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 3,
        "replicas": [1],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 0,
        "replicas": [0],
        "log_dirs": ["any"]
    }]
}

1.3 执行执行计划

  • 执行脚本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --reassignment-json-file result.json --execute

1.4 验证

  • 执行脚本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --reassignment-json-file result.json --verify
  • 结果示例
Status of partition reassignment:
Reassignment of partition topic-1 completed successfully
Reassignment of partition topic-4 completed successfully
Reassignment of partition topic-2 completed successfully
Reassignment of partition topic-3 completed successfully
Reassignment of partition topic-0 completed successfully

1.5 简化操作
我们可以仿照1.2结果示例自己编辑一份执行计划,然后按照1.3操作就行,前提是你要熟悉分区,并分配均匀。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • 写在前面 上篇文章我们介绍了新增节点后分区怎么重新负载,但这种情况很少发生。因为kafka单机负载能力很是强悍,一...
    疯狂的羊阅读 3,456评论 0 1
  • 问题的起因 最近做一次Kafka的副本数调整,从双副本调整为三副本时出现了一次副本不同步的问题,我们使用的kafk...
    何约什阅读 5,507评论 0 1
  • kafka的基本管理命令都在安装目录下面的bin文件夹。跳转到安装目录,可以执行一下基本的管理命令,比如创建...
    liwsh阅读 3,418评论 0 2
  • 在软件项目的生命周期中,开发只占开始的一小部分,大部分时间我们要对项目进行运行维护,Kafka相关的项目也不例外。...
    柴诗雨阅读 12,529评论 0 7
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,765评论 28 53

友情链接更多精彩内容