码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用 Zookeeper命令行修改 Kafka Cluster ID


    1.前言

    先讲一下做这件事的背景,笔者用 Docker搭了一套 Kafka的环境用于测试,某天发现 Kafka频繁重启,查看日志中的报错如下:

    ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
    kafka.common.InconsistentClusterIdException: The Cluster ID q3r3fhGkTya24-s3dfvYUQ doesn't match stored clusterId Some(kguWHlzQQGmCHczV3u38vQ) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.
            at kafka.server.KafkaServer.startup(KafkaServer.scala:218)
            at kafka.Kafka$.main(Kafka.scala:109)
            at kafka.Kafka.main(Kafka.scala)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里的报错很清晰:

    ​ Kafka meta.properties文件中记录的 Cluster ID与 ZK中的不一致

    查看网上的资料,基本都讲的是修改 meta.properties文件中的 Cluster ID与 ZK一致即可,但由于笔者的 Kafka此时正在不断重启,完全无法进入容器内部,那么该如何去修改这个文件呢?

    ——暂时找不到方法修改 meta.properties文件

    那么换个思路,是不是可以修改 ZK中记录的 Cluster ID呢?

    2.如何找到 Kafka Cluster ID的存储位置

    第一步,进入 ZK命令行

    # 进到 ZK的安装目录后执行下面的脚本
    ./bin/zkCli.sh
    
    • 1
    • 2

    第二步,使用 ls命令寻找保存 cluster id的文件

    ls /kafka/cluster
    # [id]
    
    • 1
    • 2

    第三步,获取上一步找到的 id文件中的内容

    get /kafka/cluster/id
    # {"version":"1","id":"q3r3fhGkTya24-s3dfvYUQ"}
    
    • 1
    • 2

    至此,已经成功找到了 ZK上存储 cluster id的文件

    3.修改 Kafka Cluster ID

    把日志里面 Kafka存储的 cluster id设置到 ZK里即可:

    # 修改 cluster id
    set /kafka/cluster/id {"version":"1","id":"kguWHlzQQGmCHczV3u38vQ"}
    
    # 确认修改结果
    get /kafka/cluster/id
    # {"version":"1","id":"kguWHlzQQGmCHczV3u38vQ"}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改完毕后重启 Kafka容器,可以看到 Kafka已经可以正常启动

    4.总结

    回溯 Kafka中存储的 cluster id和 ZK不一致的原因,应该是笔者重新创建 ZK容器导致的。

    另外,解决问题的时候思路一定要打开,一条路走不通的时候,及时换一条路。

  • 相关阅读:
    博途PLC面向对象编程之批量调用实例化对象FB
    使用Ubuntu演示介绍,Linux下安装和配置Redis、配置远程连接redis(保姆级教学)
    使用HttpServlet开发web应用
    携创教育:2023年4月自考考试时间首次公布!
    《安富莱嵌入式周报》第289期:开源回流焊,首发开源跨平台电路仿真软件,用于电气化学的电位仪,超炫酷的双语音模拟合成器,逆向工程师对波音787适航指令的看法
    c++通过tensorRT调用模型进行推理
    2016-2021年各省高考分数线
    scanf&malloc
    APO的全面进化之路(1):走向S4HANA
    善于利用GPT确实可以解决许多难题
  • 原文地址:https://blog.csdn.net/Daphnisz/article/details/126020149
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号