随着业务的发展, 服务器所在网段/机群不允许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.大功告成
 
 
 
 
 
 
 
 
 
 
 
 

kafka的迁移干货的更多相关文章

  1. kafka数据迁移实践

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:mikealzhou 本文重点介绍kafka的两类常见数据迁移方式:1.broker内部不同数据盘之间的分区数据迁移:2.不同broker ...

  2. [bigdata] kafka基本命令 -- 迁移topic partition到指定的broker

    版本 0.9.2 创建topic bin/kafka-topics.sh --create --topic topic_name --partition 6 --replication-factor ...

  3. Kafka数据迁移

    1.概述 Kafka的使用场景非常广泛,一些实时流数据业务场景,均依赖Kafka来做数据分流.而在分布式应用场景中,数据迁移是一个比较常见的问题.关于Kafka集群数据如何迁移,今天笔者将为大家详细介 ...

  4. Kafka数据迁移MaxCompute最佳实践

    摘要: 本文向您详细介绍如何使用DataWorks数据同步功能,将Kafka集群上的数据迁移到阿里云MaxCompute大数据计算服务. 前提条件 搭建Kafka集群 进行数据迁移前,您需要保证自己的 ...

  5. kafka partiton迁移方法与原理

    在kafka中增加新的节点后,数据是不会自动迁移到新的节点上的,需要我们手动将数据迁移(或者成为打散)到新的节点上 1 迁移方法 kafka为我们提供了用于数据迁移的脚本.我们可以用这些脚本完成数据的 ...

  6. Kafka Topic动态迁移 (源代码解析)

    总结下自己在尝试Kafka分区迁移过程中对这部分知识的理解,请路过高手指正. 关于Kafka数据迁移的具体步骤指导,请参考如下链接:http://www.cnblogs.com/dycg/p/3922 ...

  7. kafka概念

    一.结构与概念解释 1.基础概念 topics: kafka通过topics维护各类信息. producer:发布消息到Kafka topic的进程. consumer:订阅kafka topic进程 ...

  8. 一次flume exec source采集日志到kafka因为单条日志数据非常大同步失败的踩坑带来的思考

    本次遇到的问题描述,日志采集同步时,当单条日志(日志文件中一行日志)超过2M大小,数据无法采集同步到kafka,分析后,共踩到如下几个坑.1.flume采集时,通过shell+EXEC(tail -F ...

  9. kafka学习笔记(四)kafka的日志模块

    概述 日志段及其相关代码是 Kafka 服务器源码中最为重要的组件代码之一.你可能会非常关心,在 Kafka 中,消息是如何被保存和组织在一起的.毕竟,不管是学习任何消息引擎,弄明白消息建模方式都是首 ...

随机推荐

  1. [leetcode]366. Find Leaves of Binary Tree捡树叶

    Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...

  2. [leetcode]6. ZigZag Conversion字符串Z形排列

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  3. 小姐姐手把手教你JS数组中的对象去重

    有时候数据库中的数据重复的,我们另一个需求需要数据的唯一性 那么这时候就用到这个方法了  我还是以截图的方式发粗来  不然太丑了 见谅 console.log(map)打印出来的结果已经帮我们把需要的 ...

  4. 【并发编程】IO模型

    一.要点回顾 为了更好地了解IO模型,我们需要先回顾下几个概念:同步.异步.阻塞.非阻塞 同步: 一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行.就是在发出一个功能调用时,在没 ...

  5. C语言基础课第二次作业

    一.  题目7-1 统计学生成绩 1.实验代码 #include<stdio.h> int main(void) { int i,grade,n; ,b=,c=,d=,e=; scanf( ...

  6. MFC字体样式和颜色设置

    在编写MFC界面程序时,可能会使用不同大小或者颜色的字体,这里稍做记录. 使用方法 CFont *m_pFont;//创建新的字体 m_pFont = new CFont; m_pFont->C ...

  7. leetcode记录

    2019 1月31: 141交叉链表, 2月: 2/1: 160环形链表 ,              思路记得,但是指针里面逻辑搞错,这里不是用快慢指针而是同时的指针.:复习了141题还是有问题,把 ...

  8. Unity、C#读取XML

    有如下XML文件: <?xml version="1.0" encoding="UTF-8"?> <DataNode> <prov ...

  9. js实现粒子特效,particles.js的使用

    今天偶然看到了一个比较炫酷的js网页.是粒子特效的,就试着用了用.一下是步骤,方便以后查看使用. 1.在网站下载源码https://github.com/VincentGarreau/particle ...

  10. EF6学习笔记(四) 弹性连接及命令拦截调试

    EF6学习笔记总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 本章原文地址:Connection Resiliency and Command Interception 原文 ...