kafka集群扩容以及数据迁移

Posted sanmutongzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于kafka集群扩容以及数据迁移的主要内容,如果未能解决你的问题,请参考以下文章

kafka集群扩容后的topic分区迁移

一文掌握 Kafka 集群快速扩容的方案

避坑指南:Kafka集群快速扩容的方案总结

Kafka跨集群迁移方案MirrorMaker原理使用以及性能调优实践

redis-cluster集群扩容以及扩容client读写数据影响的探究

Kafka数据迁移