文档章节

kafka的迁移干货

a
 allantaylor81
发布于 2015/04/22 19:38
字数 551
阅读 52
收藏 0
点赞 0
评论 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:全面融合开源生态

近日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态。在全面兼容Apache Kafka生态的基础上,消息队列Kafka还具备了超易用,超高可用可靠性,扩缩容不操心,全方位安全诊断,数据安全有...

中间件小哥
昨天
0
0
浅谈开源Kafka与腾讯云cKafka

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

老张的技术
06/19
0
0
kafka常用命令

kafka自带sh脚本使用示例: (1)启动/关闭kafka服务: `shell nohup env JMXPORT=9999 /path/to/kafka2.10-0.8.2.2/bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 ......

MrYx3en
2015/12/04
190
0
kafka数据迁移

场景:老集群将不再使用,上边的kafka集群中的数据要导入到新的集群的kafka中 倒入步骤(例如按照天的topic迁移): 因为kafka默认只保留7天的数据,所以只迁移近7天的数据 1. 首先使用kafka-t...

love8023icando
2016/07/23
0
0
kafka 迁移或添加新节点

迁移 或 添加节点 第一步 部署一台新节点 server.properties和老节点基本一样需要修改下面几处: 第二步 确定迁移的topic cd 到kafka的bin目录下创建一个文件,命名为topics-to-move.json 第三...

卢禹
2016/08/11
137
0
kafka_0.10.1.0监控及管理

kafka_0.10.1.0监控及管理 1. kafka监控 kafka自身没有监控管理页面,无论是进行一些管理操作还是状态的监控都要命令加一大堆记不住的参数,实在是很不方便,不过好在在github上开源了一些工...

舒文joven
昨天
0
0
干货满满,腾讯云+社区技术沙龙 Kafka Meetup 深圳站圆满结束

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

腾讯云加社区
04/25
0
0
腾讯云Kafka海量服务自动化运营实践

腾讯云CKafka是基于Apache Kafka 的分布式、高可扩展以及高吞吐的云端Kafka服务。腾讯云CKafka针对开源Kafka进行了多种优化,其中包括无锁队列优化、异步刷盘优化、多版本支持以及GC优化等优...

腾讯架构师
05/02
0
0
Spring for Apache Kafka 1.0.2 发布

Spring for Apache Kafka 1.0.2 发布了,本次更新包含的几个关键bug修复,因此强烈建议升级。现在主分支已切换到1.1,我们开始迁移到 Kafka 0.1,Milestone 1 上的其他功能要迟些发布。 特性...

oschina
2016/07/13
1K
2
白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载。 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件。我的分享主要基于...

05/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java示例演示Functor 和monad

This article was initially an appendix in our Reactive Programming with RxJavabook. However introduction to monads, albeit very much related to reactive programming, didn't suit......

Quan全
6分钟前
0
0
微信官方jssdk Demo

1.html部分 <!DOCTYPE html><!-- saved from url=(0028){sh:$selfUrl} --><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"......

koloor
10分钟前
0
0
数据库命名规范

https://www.cnblogs.com/pangguoming/p/7126512.html 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据...

塔塔米
10分钟前
0
0
java https 请求工具类-通用

package com.ra.common.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintW......

轻量级赤影
11分钟前
0
0
MFC界面套包BCG Pro Edition for MFC正式发布v27.3|附下载

BCGControlBar Professional Edition for MFC是MFC的一个扩展库,您可以用来构建类似于Microsoft Office 2000/XP/2003/2007/2010/2013 和 Microsoft Visual Studio-like(打印、用户定制工具......

Miss_Hello_World
11分钟前
0
0
Spring Cloud云服务 - HongHu架构common-service 项目构建过程

上一篇我们介绍了《整合spring cloud云服务架构 - HongHu云架构common-service代码结构分析》,本节我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来...

itcloud
12分钟前
0
0
Connection reset

在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰很久了,今天就来分析下,希望能帮到大家。例如我们线上的网关日志就会...

夜黑人模糊灬
16分钟前
0
0
如何写PHP规范注释

所有的文档标记都是在每一行的 * 后面以@开头。如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉。 @access 该标记用于指明关键字的存取权限:private、public或prote...

度_
17分钟前
0
0
influxDB Ppostgis

PostGis 1.需要安装postgreSQL,postgis作为插件嵌入到postgreSQL中; 2.使用zip包直接安装,需要修改 makepostgisdb_using_extensions.bat文件中的路径,用户名,密码,然后直接运行; 3.没有...

courtzjl
20分钟前
0
0
多线程Thread-多线程顺序执行

需求:现在有两个任务,任务1和任务2,任务1中有多个线程,并且任务2必须等任务1完成后才能执行。 namespace TThread{ class Program { static void Main(string[] ar...

kaixinguo314
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部