kafka集群擴容以及資料遷移

2021-08-10 01:56:49 字數 1557 閱讀 3337

一 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' ''`

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集群擴容後的topic分割槽遷移

kafka集群擴容後,新的broker上面不會資料進入這些節點,也就是說,這些節點是空閒的 它只有在建立新的topic時才會參與工作。除非將已有的partition遷移到新的伺服器上面 所以需要將一些topic的分割槽遷移到新的broker上。kafka reassign partitions.sh...

Kafka 集群的擴容

將現有的集群上任乙個伺服器上的kafka目錄拷貝到新的伺服器上 修改config server.properties中的broker.id log.dirs listeners 建立logs.dirs指定的目錄,並設定讀寫許可權 chomd r 777 broker.id 3log dirs kaf...

Kafka 資料遷移

當kafka 減少broker節點後,需要把資料分割槽遷移到其他節點上,以下將介紹我的一次遷移驗證過程。前3步為環境準備,實際資料操作看第4步即可 增加broker節點,也可以採用步驟4相同的方法進行重新分割槽 方案思想 使用kafka reassign partitions命令,把partitio...