Как удалить несоответствующие данные метаданных темы kafka из kafka_2.10-0.8.1.1 - PullRequest
0 голосов
/ 06 июня 2018

Хотите знать, как восстановиться в уникальной ситуации, когда zookeeper, похоже, имеет метаданные темы (T_60036), но у брокера нет соответствующего файла журнала, что приводит к сбою производителей с исключением

kafka.common.FailedToSendMessageException

Ниже приведеночто мы заметили:

В zookeeper существуют пути / brokers / themes / T_60036 и / config / themes / T_60036.

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

Но для этой темы нет файлов журнала:

kafka@kafka-3:~$ ls -l /var/kafka/topics/T_60036*
ls: cannot access /var/kafka/topics/T_60036*: No such file or directory

Я прочитал второй комментарий по удалению темы здесь , но, боюсь, это может дестабилизировать весь кластер.Мой вопрос заключается в том, будет ли безопасно удалять потерянные записи zookeeper ("/ config / themes / T_60036", "/ brokers / themes / T_60036") из zookeeper без перезапуска или создания угрозы для кластера.

Вот нашконфигурация

Version: kafka_2.10-0.8.1.1
Cluster Configuration: 4 kafka brokers + 4 zookeeper
Topic Partiton: 1
Topic Replicas: 2

1 Ответ

0 голосов
/ 07 июня 2018

Похоже, это работало без разрушения кластера:

Сначала удалите поврежденную тему, используя скрытую функцию 0.8.1.1

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

Повторно создайте тему

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...