2016-12-19 1 views
0

Я запускаю кластер kafka, состоящий из 3 узлов. Один из узлов разбились, и он вел себя странно с тех пор ...kafka-topics.sh --describe ничего не возвращают

Ниже не возвращает ничего о неисправном узле:

kafka-topics.sh --describe --zookeeper mynode01:2181 

Однако, запрашивая темы на других узлах Возвратит ожидаемые темы.

Другая вещь, которую я видел, что работник зоопарка, кажется, отсутствуют некоторые каталоги:

./zkCli.sh -server mynode01 
[zk: localhost:2181(CONNECTED) 1] ls/
[controller, zookeeper] 

В то время как, если я проверить любой другой узел он возвращается с:

[zk: localhost:2181(CONNECTED) 0] ls/
[isr_change_notification, zookeeper, admin, consumers, config, controller, brokers] 

Журналы сообщают следующую запись :

Error for partition [myqueue-1,0] to broker 1:org.apache.kafka.common.errors.NotLeaderForPartitionException: This server is not the leader for that topic-partition. (kafka.server.ReplicaFetcherThread) 

Я попробовал пару вещей, чтобы разобраться, без радости:

  1. Перезапустите кластер kafka, чтобы другой узел стал лидером.
  2. Назначают другой лидер по темам, пострадавших от работы ./kafka-reassign-partitions.sh
  3. Stop Кафка и Zookeeper услуги на пораженный узел, удалить Кафка-журналы и zkdata и начать их обратно.

Хотя кластер, похоже, способен обрабатывать этот узел как любой другой и переключать роли лидера/последователя без проблем ... похоже, что он вышел из синхронизации в какой-то момент и не может восстановить себя.

Есть идеи?

Заранее спасибо

ответ

0

я был в состоянии решить эту проблему путем остановки Zookeeper и Кафка услуги в пораженном узле и удаления снимков, доступных в zkdata и связанных с ними журналов транзакций, доступных в zklog каталогах.

После запуска zookeeper на поврежденном узле отсутствующие znodes были повторно синхронизированы.