Kakfa集群(2.11-0.10.1.0)版本滚动升级方案
Kafka集群版本升级(2.11-0.10.1.0)升级(2.11-0.10.2.2)
官网升级说明:
一、系统环境
Zookeeper集群:
172.16.2.10
172.16.2.11
172.16.2.12
Kafka集群:
172.16.2.10
172.16.2.11
172.16.2.12
现Kafka版本: 2.11-0.10.1.0,安装目录:/usr/local/kafka
计划升级至版本:2.11-0.10.2.2,安装目录:/usr/local/kafka_2.11-0.10.2.2
二、创建测试topic
1.创建测试topic
- /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic first
- /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic second
2.查看测试topic
- /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
- Ls /data/kafka/
3.查看当前服务器中的所有topic
- /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --list
三、升级步骤
1.安装新版本kafka
- tar -xf kafka_2.-0.10.2.2.tgz -C /usr/local/
- cp /usr/local/kafka_2.-0.10.1.0/config/server.properties /usr/local/kafka_2.-0.10.2.2/config/server.properties
2.修改配置
注:修改配置2.11-0.10.2.2(升级版本)的server.properties,添加2行,其他配置保持不变,特别是数据存储目录,cp 2.10-0.10.1.0(旧版本)的配置
- cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.-0.10.2.2/config/server.properties
- vim /usr/local/kafka_2.-0.10.2.2/config/server.properties
- inter.broker.protocol.version=0.10.1.0
- log.message.format.version=0.10.1.0
3.停止原版本
注:停止原版本的kafka,使用kafka自带stop脚本bin下的kafka-server-stop.sh或者kill掉, 然后启动2.11-0.10.2.2,由于之前配置了环境变量,注意用2.11-0.10.2.2目录下的程序去启动kafka
- usr/local/kafka/bin/kafka-server-stop.sh
- ps -ef|grep kafka
4.启动新版本
第一台kafka服务器后台启动
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.-0.10.2.2/config/server.properties
- tail -f /usr/local/kafka_2.-0.10.2.2/logs/server.log
查看topic first:
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
测试创建topic test1
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --create --replication-factor --partitions --topic test1
没有异常,观察半小时左右,将剩下的两台服务器都这样操作,更新配置,关闭原版本,启动新版本kafka
- cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.-0.10.2.2/config/server.properties
- vim /usr/local/kafka_2.-0.10.2.2/config/server.properties
- inter.broker.protocol.version=0.10.1.0
- log.message.format.version=0.10.1.0
第二台kafka
第三台kafka
注意:替换新版broker后,注意查看新版broker是否已经注册到zookeeper,所在机器上的的副本是否已经可用。确定可用之后再更新下一台broker。
5.看kafka在zookeeper中节点信息和查看方式
(1).先到zookeeper的bin下面
Cd /usr/local/zookeeper/bin
(2).执行命令./zkCli.sh
(3).输入命令 ls /,ls /consumers 这个命令是消费者 还没有数据
(4).输入下图中的命令就能看到了
6.修改新版本配置
确定上诉步骤已经执行完毕,并且集群一切正常后,
再次更新broker间通讯版本和消息格式版本,修改所有新版配置文件server.properties
- vim /usr/local/kafka_2.-0.10.2.2/config/server.properties
- inter.broker.protocol.version=0.10.2.2
- log.message.format.version=0.10.2.2
再次依次重启新版kafka集群
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-server-stop.sh
- ps -ef|grep kafka
- 后台启动 :
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-server-start.sh -daemon /usr/local//kafka_2.11-0.10.2.2/config/server.properties
- tail -f /usr/local/kafka_2.-0.10.2.2/logs/server.log
7.验证升级完成
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic first
- /usr/local/kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --describe --topic sencod
- /usr/local/ kafka_2.-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:,172.16.2.11:,172.16.2.12: --list
注:另外通过kafka-manager界面工具边升级边观察消费者和生产者相关数据信息,
因生产环境Kafka集群中个别kafka经常是挂掉,经过分析后是kafka版本BUG,故目前已在生产环境升级完成,仅供参考。
Kakfa集群(2.11-0.10.1.0)版本滚动升级方案的更多相关文章
- cron 表达式0 0/10 * * * 与 0 */10 * * *的区别
0 0/10 * * * 与 0 */10 * * * 的差别在于什么地方.在说这两者的差别之前,先说下各个字符代表的含义.0代表从0分开始,*代表任意字符,/代表递增. 0 0/10 * * *代表 ...
- redis集群热扩展(基于4.0.9)
1:环境说明,首先说一下要做的事情,我们要迁移redis集群槽位,现有redis集群环境如下 我们看一下集群的基本信息: > cluster nodes 8ea64a0049e0b193296a ...
- centos8平台redis cluster集群添加/删除node节点(redis5.0.7)
一,当前redis cluster的node情况: 我们的添加删除等操作都是以这个cluster作为demo cluster采用六台redis,3主3从 redis1 : ip: 172.17.0.2 ...
- Botposter.com集群ETCD2.3.7升级至3.0实录[原创]
7月1日,为庆祝我党生日,ETCD隆重发布了3.0版本.Botposter.com也在第一时间对集群进行了升级.本文是升级过程的记录与总结(文中假设读者已经使用或测试过ETCD V2,如有不妥请见谅) ...
- Redis集群环境使用的是redis4.0.x的版本,在用java客户端jedisCluster启动集群做数据处理时报java.lang.NumberFormatException: For input string: "7003@17003"问题解决
java.lang.NumberFormatException: For input string: "7003@17003" at java.lang.NumberFormatE ...
- Hbase 集群安装(Hadoop 2.6.0 hbase0.99.2)
一:说明 该安装是在hadoop集群安装后进行,详情可见上一篇博客虚拟机centos7系统下安装hadoop ha和yarn ha(详细) .其中涉及五台机器,两台master(机器名:master, ...
- solr集群搭建(4.10.2)
配置环境为centos6.8 下载tomcat程序到服务器,并解压启动服务测试 [root@hadoop01 ~]# wget http://apache.claz.org/tomcat/tomcat ...
- Elasticsearch集群搭建笔记(elasticsearch-6.3.0)
# 检查Java版本 java -version # 安装Elasticsearch,所有节点均安装并解压 wget https://artifacts.elastic.co/downloads/el ...
- Spark集群任务提交流程----2.1.0源码解析
Spark的应用程序是通过spark-submit提交到Spark集群上运行的,那么spark-submit到底提交了什么,集群是怎样调度运行的,下面一一详解. 0. spark-submit提交任务 ...
随机推荐
- SpringBoot中对SpringMVC的自动配置
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developin ...
- Client API Object Model - Form Context
FormContext 提供界面或者界面上控件的的引用. 比如说 quick view control, row in an editable grid 等等. Xrm.Page 和 getFormC ...
- Java中的Swap,如何实现?
程序员都知道,在C/C++里面交换值的方法: void swap(int &a,int &b) { int temp; temp=a; a=b; b=temp; } 但是在Java中这 ...
- Yum注册
我虚拟机安装的系统是RedHat Enterprise Linux 6.4-i686,是32位的.使用yum命令安装软件时候出现以下错误: This system is not registered ...
- Git详解之分布式应用
前言 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库.经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令.接下来,我们要学习下如何利用 Git ...
- WEB打印控件LODOP的使用
有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程接口,因为她介于浏览器和打印设备之间,是个通道和桥梁,几乎能想到的打印控制事 ...
- DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排
前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将 ...
- 用TreeWalk提高网速及其在vista中的安装方法
本文中所需的软件请到http://download.csdn.net/source/738436下载. 有时候,我们发现可以上的去QQ,上的去飞信,但是却打不开网页,我通过GOOGLE的搜索发 ...
- js笔记(5)--location的用法
!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g ...
- 闲谈一下,ES3、ES4、ES5、ES6 分别是什么
上图按照时间顺序说明了JavaScript.JScript和ECMAScript的发展. 显示在网景工作的Brendan Eich临危受命,用十天时间设计出LiveScript的第一个版本.临时发布前 ...