使用 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)

这里的报错很清晰:

​ 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

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

ls /kafka/cluster
# [id]

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

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

至此,已经成功找到了 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"}

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

4.总结

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值