當kafka 減少broker節點後,需要把資料分割槽遷移到其他節點上,以下將介紹我的一次遷移驗證過程。
前3步為環境準備,實際資料操作看第4步即可
增加broker節點,也可以採用步驟4相同的方法進行重新分割槽
方案思想:使用kafka-reassign-partitions命令,把partition重新分配到指定的broker上
1、建立測試topic,具有3個分割槽,2個副本
kafka-topics --create --topic test-topic \
--zookeeper cdh-002/kafka \
--replication-factor 2 --partitions 3
2、檢視test-topic
3、產生若干條資料
kafka-console-producer --topic test-topic \
--broker-list cdh-004:9092
4、kafka-reassign-partitions重分割槽(假設需要減少節點broker 75,本測試通過關閉對應kafka broker節點模擬)
(1) 新建檔案topic-to-move.json ,比加入如下內容
], "version": 1}
(2) 使用--generate生成遷移計畫,broker-list根據自己環境設定,我的環境由於broker 75掛掉了,只剩下76和77
kafka-reassign-partitions --zookeeper cdh-002/kafka \
--topics-to-move-json-file /opt/lb/topic-to-move.json \
--broker-list "76,77" --generate
輸出日誌:(從日誌可知各個分割槽副本所在的broker節點,以及建議的副本分布)
current partition replica assignment (當前分割槽副本分布)
,,]}
proposed partition reassignment configuration (建議分割槽副本分布)
,,]}
(3) 新建檔案kafka-reassign-execute.json,並把建議的分割槽副本分布配置拷貝到新建檔案中
(4) 使用--execute執行遷移計畫 (有資料移動,broker 75上的資料會移到broker 76和77上,如果資料量大,執行的時間會比較久,耐心等待即可)
kafka-reassign-partitions --zookeeper cdh-002/kafka \
--reassignment-json-file /opt/lb/kafka-reassign-execute.json \
--execute
(5)使用-verify檢視遷移進度
kafka-reassign-partitions --zookeeper cdh-002/kafka \
--reassignment-json-file /opt/lb/kafka-reassign-execute.json \
--verify
(6)通過消費者驗證,可知,並未丟失資料。注意需要加--from-beginning。(此時broker 75和77同時宕機,也不會丟失資料,因為76上有了所有分割槽的副本)
另外一種驗證方法就是通過檢視kafka儲存路徑來確認,是否有遷移資料
[root@cdh-003 ~]# cd /var/local/kafka/data/
[root@cdh-003 data]# ll
rwxr-xr-x 2 kafka kafka 110 oct 23 14:21 test-topic-0
drwxr-xr-x 2 kafka kafka 110 oct 23 14:52 test-topic-1
drwxr-xr-x 2 kafka kafka 110 oct 23 14:21 test-topic-2
Kafka 資料遷移
當kafka 減少broker節點後,需要把資料分割槽遷移到其他節點上,以下將介紹我的一次遷移驗證過程。前3步為環境準備,實際資料操作看第4步即可 增加broker節點,也可以採用步驟4相同的方法進行重新分割槽 方案思想 使用kafka reassign partitions命令,把partitio...
kafka集群擴容以及資料遷移
一 kafka集群擴容比較簡單,機器配置一樣的前提下只需要把配置檔案裡的brokerid改乙個新的啟動起來就可以。比較需要注意的是如果公司內網dns更改的不是很及時的話,需要給原有的舊機器加上新伺服器的host,不然可能會產生controller伺服器從zk上拿到網域名稱但是解析不到新機器位址的情況...
kafka訊息系統 海量資料遷移方案
由於本人主要從事大資料視覺化的工作,就少不了對海量資料的分析,但是我們並不是資料的生產 資料來自有大資料視覺化分析需求的使用者,所以實際業務中往往會遇到大量資料從傳統儲存方式 關係型資料庫 檔案儲存等 到資料倉儲的遷移,本次就以實現如何基於kafka從oracle到hive倉庫做資料的遷移工作。本次...