设为首页 收藏本站
查看: 1011|回复: 0

[经验分享] kafka数据迁移

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-25 10:15:59 | 显示全部楼层 |阅读模式
场景:老集群将不再使用,上边的kafka集群中的数据要导入到新的集群的kafka中

倒入步骤(例如按照天的topic迁移):
  因为kafka默认只保留7天的数据,所以只迁移近7天的数据
  1. 首先使用kafka-topic.sh客户端列出kafka集群上所有topic
  2. 取出近7天的topic名称,写入到一个txt文本中,每个topic名称一行

  3. 导出:for i in $(cat txt);do kafka-console-consumer.sh --zookeeper=... --topic=$i --from-beginning >>$i.txt;done
  4. 导入: 先创建topic:kafka-topic.sh create topic
    cat $i.txt | kafka-conso-producer.sh --broker-list=... --topic=$i

第二种方案不常用:
借鉴:http://www.cnblogs.com/dycg/p/3922352.html
具体步骤如下:
1.在新节点上搭建kafka服务
原先我有2台机器, broker.id分别为1和2
现在我新机器上broker.id分别设置为3和4

2.启动所有kafka 服务

3.确认要移动的topics

kafka-topics.sh --list --zookeeper 192.168.103.47:2181  查看所有主题

复制这些topic,并写成如下格式的文件, 命名为 topics-to-move.json
{"topics": [
{"topic": "fortest1"},
{"topic": "fortest2"},
{"topic": "fortest3"}
],
"version":1
}

4.生成移动脚本

运行bin/kafka-reassign-partitions.sh --zookeeper 192.168.103.47:2181 --topics-to-move-json-file topics-to-move.json --broker-list "3,4" --generate

其中3,4是你的新节点的broker.id

这样就会生成一串新的json数据
{"version":1,"partitions":[{"topic":"fortest1","partition":0,"replicas":[3,4]},其他部分省略}

将这一串json写入新文件reassignment-node.json


5.这时候,万事俱备, 开始迁移
bin/kafka-reassign-partitions.sh --zookeeper 192.168.103.47:2181 --reassignment-json-file reassignment-node.json --execute

6.适当时候, 运行如下命令,查看运行结果

bin/kafka-reassign-partitions.sh --zookeeper 192.168.103.47:2181 --reassignment-json-file reassignment-node.json --verify



假设出现
ERROR: Assigned replicas (3,4,0,1) don't match the list of replicas for reassignment (3,4) for partition [mpt-session,1]
这样的错误, 他并不是真的出错,而是指目前仍在复制数据中.
再过一段时间再运行verify命令,他就会消失(加入完成拷贝)



7.数据完成迁移后, 老的服务先别停.
8.修改所有客户端producer或者consumer连接指向新节点.
9.测试正常后,



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249062-1-1.html 上篇帖子: kafka-storm-hbase的例子中出现的异常 下篇帖子: Kafka Server写数据的时候报错org.apache.kafka.common.errors.RecordToo...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表