zoukankan      html  css  js  c++  java
  • 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:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 3  --partitions 2 --topic first
    
    /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 2  --partitions 1 --topic second

    2.查看测试topic

    /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first
    Ls /data/kafka/

    3.查看当前服务器中的所有topic

    /usr/local/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --list

    三、升级步骤
    1.安装新版本kafka

    tar  -xf  kafka_2.11-0.10.2.2.tgz  -C /usr/local/
    cp /usr/local/kafka_2.10-0.10.1.0/config/server.properties  /usr/local/kafka_2.11-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.11-0.10.2.2/config/server.properties
    vim /usr/local/kafka_2.11-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.11-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.11-0.10.2.2/logs/server.log

    查看topic first:

    /usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first

    测试创建topic test1

    /usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181  --create --replication-factor 3  --partitions 2 --topic test1

     没有异常,观察半小时左右,将剩下的两台服务器都这样操作,更新配置,关闭原版本,启动新版本kafka

    cp /usr/local/kafka/config/server.properties /usr/local/kafka_2.11-0.10.2.2/config/server.properties
    vim /usr/local/kafka_2.11-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.11-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.11-0.10.2.2/bin/kafka-server-stop.sh 
    ps -ef|grep kafka
    后台启动 :
    /usr/local/kafka_2.11-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.11-0.10.2.2/logs/server.log

    7.验证升级完成

    /usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic first
    /usr/local/kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --describe --topic sencod
    /usr/local/ kafka_2.11-0.10.2.2/bin/kafka-topics.sh --zookeeper 172.16.2.10:2181,172.16.2.11:2181,172.16.2.12:2181 --list

    注:另外通过kafka-manager界面工具边升级边观察消费者和生产者相关数据信息,

    因生产环境Kafka集群中个别kafka经常是挂掉,经过分析后是kafka版本BUG,故目前已在生产环境升级完成,仅供参考。

  • 相关阅读:
    NSURLConnection的异步请求方式
    <iOS>关于Xcode上的Other linker flags
    使用十六进制色值表示UIColor
    kubernetes & docker
    01 docker的安装与基本使用
    08 数组
    07 grep 正则
    06 信号处理和expect
    05 函数
    04 流程控制
  • 原文地址:https://www.cnblogs.com/liucx/p/12221589.html
Copyright © 2011-2022 走看看