博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kafka 数据迁移
阅读量:6622 次
发布时间:2019-06-25

本文共 2101 字,大约阅读时间需要 7 分钟。

当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 ,比加入如下内容

{"topics": [{"topic":"test-topic"}], "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 (当前分区副本分布)

{"version":1,"partitions":[{"topic":"test-topic","partition":0,"replicas":[76,77]},{"topic":"test-topic","partition":2,"replicas":[75,76]},{"topic":"test-topic","partition":1,"replicas":[77,75]}]}

Proposed partition reassignment configuration (建议分区副本分布)

{"version":1,"partitions":[{"topic":"test-topic","partition":0,"replicas":[76,77]},{"topic":"test-topic","partition":2,"replicas":[76,77]},{"topic":"test-topic","partition":1,"replicas":[77,76]}]}

(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

转载地址:http://xxjpo.baihongyu.com/

你可能感兴趣的文章
inotify+rsync实现实时同步
查看>>
C#GUID
查看>>
ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目
查看>>
spring+activemq中多个consumer同时处理消息时遇到的性能问题
查看>>
git clone 遇到的坑
查看>>
linux系统/var/log目录下的信息详解
查看>>
Android中利用LinearLayout继承实现ImageButton 转
查看>>
图片处理--边缘高亮
查看>>
Linux计划任务Crontab实例详解教程
查看>>
android之布局
查看>>
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
配置级别greenplum 可用空间计算
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
消除人声的方法
查看>>
Post请求
查看>>
labview 中activex的初步使用方法
查看>>
Jquery 操作Html 控件 CheckBox、Radio、Select 控件
查看>>
JSP与JavaBeans
查看>>