文档章节

kafka的迁移干货

a
 allantaylor81
发布于 2015/04/22 19:38
字数 551
阅读 68
收藏 0

随着业务的发展, 服务器所在网段/机群不允许kafka继续保留在那, 需要移动到先机器上.

哎呀上面是废话,总的说就是: 2台老kafka不要了,数据要迁移到新的2台kafka上面.要求数据不丢失

 

通过查询官网,并无直接切换的命令,当前版本是kafka 0.8.1,  说是0.8.2才提供老机器的退役功能.

 

不过没关系, 我们有一个变通的方法:

kafka提供了修改复制因子的方法, 我们可以将她的复制目标机器改成新的节点.  这样所有发往老节点的数据都会被转移到新节点去.

等你将发送者的API修改后,让他目标指向新机器,  迁移工作就全部完成.

 

具体步骤如下:

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.测试正常后, 关闭老节点

10.大功告成

本文转载自:http://www.cnblogs.com/dycg/p/3922352.html

共有 人打赏支持
a
粉丝 2
博文 120
码字总数 2912
作品 0
东城
私信 提问
Kafka Partition Leader选主机制

Kafka Partition Leader选主机制 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boot 实战(干货) React 入门实战(干货) 构建中小型互联网企业架构...

tantexian
2018/11/14
0
0
干货满满,腾讯云+社区技术沙龙 Kafka Meetup 深圳站圆满结束

云加社区技术沙龙 发表于腾讯云技术沙龙订阅 56 干货满满,腾讯云+社区技术沙龙 Kafka Meetup 深圳站圆满结束 云+导语:4月22日,由腾讯云和 Kafka 社区主办、开源中国协办的腾讯云+社区技术...

腾讯云加社区
2018/04/25
0
0
当Elasticsearch遇见Kafka

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由michelmu发表于云+社区专栏 Elasticsearch作为当前主流的全文检索引擎,除了强大的全文检索能力和高扩展性之外,对多种数据...

腾讯云加社区
2018/11/12
0
0
阿里云消息队列Kafka商业化:支持消息无缝迁移到云上

7月25日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态。在兼容Apache生态的基础上,阿里云消息队列Kafka彻底解决了开源产品稳定性不足的痛点,可用性达99.9%,数据可靠性99.999999%,...

中间件小哥
2018/07/25
0
0
浅谈开源Kafka与腾讯云cKafka

今天下午参加了腾讯云+社区组织的kafka公开课,收获良多。正巧在工作中也遇到过kafka的问题,今天听完之后产生了非常多的感想。无奈篇幅有限,本人又文笔愚钝,所以今天的分享主要提及对我感...

老张的技术
2018/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

发布xxl-job executor dotnet core 执行器的实现

DotXxlJob [github][https://github.com/xuanye/DotXxlJob] xxl-job的dotnet core 执行器实现,支持XXL-JOB 2.0+ 1 XXL-JOB概述 [XXL-JOB][1]是一个轻量级分布式任务调度平台,其核心设计目标...

假正经哥哥
27分钟前
1
0
mysql 查询当天、本周,本月,上一个月的数据

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 近7天 SELECT * FROM 表名 wher......

BraveLN
今天
3
0
Spring 事务初始化源码分析

相关文章 Spring 事务使用详解 Spring AOP 创建代理的源码解析 Spring AOP 注解方式源码解析 Spring AOP 功能使用详解 Spring 的 getBean 方法源码解析 Spring bean 创建过程源码解析 Spring...

TSMYK
今天
1
0
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构

前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程 frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDa...

天王盖地虎626
今天
3
0
【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)

1、前言   框框博客在线报时:2018-11-07 19:31:06   当前MySQL最新版本:8.0.13 (听说比5.7快2倍)   官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 ...

Code辉
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部