首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从kafka_2.10-0.8.1.1中移除不一致的kafka主题元数据

如何从kafka_2.10-0.8.1.1中移除不一致的kafka主题元数据
EN

Stack Overflow用户
提问于 2018-06-07 00:40:54
回答 2查看 1.1K关注 0票数 0

想知道如何从zookeeper似乎具有主题(T_60036)元数据的独特情况中恢复,但broker没有相应的日志文件,导致生产者失败并出现异常

代码语言:javascript
复制
kafka.common.FailedToSendMessageException

下面是我们注意到的:

在zookeeper中,/brokers/topics/T_60036和/config/topics/T_60036路径都存在。

代码语言:javascript
复制
kafka@kafka-3:~$ /opt/kafka/kafka_2.10-0.8.1.1/bin/zookeeper-shell.sh
localhost:2181 get /brokers/topics/T_60036/partitions/0/state
Connecting to localhost:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
{"controller_epoch":6,"leader":1,"version":1,"leader_epoch":0,"isr":[1,2]}
cZxid = 0x80013308c
ctime = Wed Jun 06 04:55:37 UTC 2018
mZxid = 0x80013308c
mtime = Wed Jun 06 04:55:37 UTC 2018
pZxid = 0x80013308c
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 74
numChildren = 0

kafka@kafka-3:~$ /opt/kafka/kafka_2.10-0.8.1.1/bin/zookeeper-shell.sh
localhost:2181 get /config/topics/T_60036
Connecting to localhost:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
{"version":1,"config":{}}
cZxid = 0x800132992
ctime = Wed Jun 06 04:55:13 UTC 2018
mZxid = 0x800132992
mtime = Wed Jun 06 04:55:13 UTC 2018
pZxid = 0x800132992
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 25
numChildren = 0

但没有此主题的日志文件:

代码语言:javascript
复制
kafka@kafka-3:~$ ls -l /var/kafka/topics/T_60036*
ls: cannot access /var/kafka/topics/T_60036*: No such file or directory

我确实读了主题删除here的第二条评论,但我担心它可能会破坏整个集群的稳定。我的问题是,在不重新启动或危害集群的情况下,从zookeeper中删除孤立的zookeeper条目("/config/topics/T_60036“、"/brokers/topics/T_60036")是否安全。

下面是我们的配置

代码语言:javascript
复制
Version: kafka_2.10-0.8.1.1
Cluster Configuration: 4 kafka brokers + 4 zookeeper
Topic Partiton: 1
Topic Replicas: 2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-08 04:16:42

这似乎在没有关闭集群的情况下起到了作用:

首先使用0.8.1.1的隐藏功能删除损坏的主题

代码语言:javascript
复制
kafka@kafka-3:~$ /opt/kafka/kafka_2.10-0.8.1.1/bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic T_60036

重新创建主题

代码语言:javascript
复制
kafka@kafka-3:~$/opt/kafka/kafka_2.10-0.8.1.1/bin/kafka-topics.sh --create --topic T_60036 --zookeeper localhost:2181 --partitions 1 --replication-factor 2
票数 0
EN

Stack Overflow用户

发布于 2021-09-01 01:28:58

我想让人们知道,如果您在较新的集群版本(在2.8版本中测试)中尝试提出的解决方案,使用隐藏功能0.8.1.1 kafka-run-class.sh kafka.admin.DeleteTopicCommand,这将导致zookeeper主题配置中的状态不一致。

所以我建议你不要这么做。

也许它适用于以前的版本,但不适用于2.8

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50725488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档