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)版本滚动升级方案的更多相关文章

  1. cron 表达式0 0/10 * * * 与 0 */10 * * *的区别

    0 0/10 * * * 与 0 */10 * * * 的差别在于什么地方.在说这两者的差别之前,先说下各个字符代表的含义.0代表从0分开始,*代表任意字符,/代表递增. 0 0/10 * * *代表 ...

  2. redis集群热扩展(基于4.0.9)

    1:环境说明,首先说一下要做的事情,我们要迁移redis集群槽位,现有redis集群环境如下 我们看一下集群的基本信息: > cluster nodes 8ea64a0049e0b193296a ...

  3. centos8平台redis cluster集群添加/删除node节点(redis5.0.7)

    一,当前redis cluster的node情况: 我们的添加删除等操作都是以这个cluster作为demo cluster采用六台redis,3主3从 redis1 : ip: 172.17.0.2 ...

  4. Botposter.com集群ETCD2.3.7升级至3.0实录[原创]

    7月1日,为庆祝我党生日,ETCD隆重发布了3.0版本.Botposter.com也在第一时间对集群进行了升级.本文是升级过程的记录与总结(文中假设读者已经使用或测试过ETCD V2,如有不妥请见谅) ...

  5. 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 ...

  6. Hbase 集群安装(Hadoop 2.6.0 hbase0.99.2)

    一:说明 该安装是在hadoop集群安装后进行,详情可见上一篇博客虚拟机centos7系统下安装hadoop ha和yarn ha(详细) .其中涉及五台机器,两台master(机器名:master, ...

  7. solr集群搭建(4.10.2)

    配置环境为centos6.8 下载tomcat程序到服务器,并解压启动服务测试 [root@hadoop01 ~]# wget http://apache.claz.org/tomcat/tomcat ...

  8. Elasticsearch集群搭建笔记(elasticsearch-6.3.0)

    # 检查Java版本 java -version # 安装Elasticsearch,所有节点均安装并解压 wget https://artifacts.elastic.co/downloads/el ...

  9. Spark集群任务提交流程----2.1.0源码解析

    Spark的应用程序是通过spark-submit提交到Spark集群上运行的,那么spark-submit到底提交了什么,集群是怎样调度运行的,下面一一详解. 0. spark-submit提交任务 ...

随机推荐

  1. ASENET MVC 5 with Bootstrap and Knockout.js 第一弹

     A Basic Example Now that the Knockout library is installed, let’s get right to an example of using ...

  2. 优雅写Java之三(IO与文本解析)

    一.资源相关 二.路径与文件 读文件: String fileName = "str.txt"; Files.lines(Paths.get(fileName), Standard ...

  3. 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游

    一.什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录.如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年. ...

  4. Selenium(一):元素定位

    一.Selenium 8种定位方式 baidu.html <form id="form" name="f" action="/s" c ...

  5. Nginx(二) 常用配置

    全局配置段 # 允许运行nginx服务器的用户和用户组 user www-data; # 并发连接数处理(进程数量),跟cpu核数保存一致: worker_processes auto; # 存放 n ...

  6. SpringCloud与微服务Ⅴ --- Eureka服务注册与发现

    一.Eureka是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构 ...

  7. JDK源码之String类解析

    一 概述 String由final修饰,是不可变类,即String对象也是不可变对象.这意味着当修改一个String对象的内容时,JVM不会改变原来的对象,而是生成一个新的String对象 主要考虑以 ...

  8. Web 项目没有发布到我们安装的tomcat目录下

    新手做Web项目的时候,在Ecplise把app发布到tomcat,但最后项目并没有发布到我们自己安装的 tomcat目录下,而是在.metadata\.plugins\org.eclipse.wst ...

  9. Exchange邮件服务器安全

    Exchange是由微软推出的用于企业环境中部署的邮件服务器.Exchange在逻辑上分为三个层次:网络层(network layer).目录层(directory layer).消息层(messag ...

  10. 说说GAN(生成式对抗网络)

    在Auto-encoder中,input data通过一个encoder神经网络得到一个维度的较低的向量,称这个向量为code,code经过一个decoder神经网络后输出一个output data. ...