kafka集群扩容以及数据迁移

一 kafka集群扩容比较简单,机器配置一样的前提下只需要把配置文件里的brokerid改一个新的启动起来就可以。比较需要注意的是如果公司内网dns更改的不是很及时的话,需要给原有的旧机器加上新服务器的host,不然可能会产生controller服务器从zk上拿到域名但是解析不到新机器地址的情况。

 

二 集群扩容后数据是不会自动均衡到新机器上的,需要采用kafka-reassign-partitions.sh这个工具脚本。脚本可以工作在三种模式--generate,--execute,--verify

分别用来生成topic迁移计划文件,执行迁徙计划,查看迁移进度,官方文档写的很明白了,不足的地方是每一步都需要手工执行比较麻烦和容易出错,借用了组内同学之前写的

一个脚本差不多实现了半自动化还是很提高效率的,备忘一下。

startRebalance.sh

#!/bin/bash

 source /etc/profile

source ./conf.sh

echo "zkConf:"  $zkServer$clusterName 

echo "brokerList:" $brokerIdList

echo "###########################start generate reblance conf##############################"

content=`kafka-reassign-partitions.sh --zookeeper $zkServer$clusterName --topics-to-move-json-file topicmove.conf.multi --broker-list $brokerIdList --generate`

content=`echo $content | awk -F 'Proposed partition reassignment configuration' '{print $2}'`

echo $content

echo $content > ressgintopic.conf

echo $content >> ./log/reblance.log

echo "" >> ./log/reblance.log

echo "###########################end generate reblance conf##############################"

 #start reblance

echo "###########################start reblance##############################"

kafka-reassign-partitions.sh --zookeeper $zkServer$clusterName --reassignment-json-file ressgintopic.conf --execute

 

conf.sh

#!/bin/bash

 zkServer=1.1.1.1:2181

clusterName=/kafka/chroot

brokerIdList=1,2,3


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值