Потоковое приложение Kafka не может получить смещения для раздела - PullRequest
0 голосов
/ 08 июня 2018

Я создал кластер kafka с 3 брокерами и следующими данными:

  1. Создано 3 темы, каждая с коэффициентом репликации = 3 и разделами = 2.
  2. Создано 2 производителя каждыйодна запись в одну из тем.
  3. Создано приложение Streams для обработки сообщений из двух тем и записи в третью тему.

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

[WARN ] 2018-06-08 21:16:49.188 [Stream3-4f7403ad-aba6-4d34-885d-60114fc9fcff-StreamThread-1] org.apache.kafka.clients.consumer.internals.Fetcher [Consumer clientId=Stream3-4f7403ad-aba6-4d34-885d-60114fc9fcff-StreamThread-1-restore-consumer, groupId=] Attempt to fetch offsets for partition Stream3-KSTREAM-OUTEROTHER-0000000005-store-changelog-0 failed due to: Disk error when trying to access log file on the disk.

Из-за этого предупреждения приложение Streams не обрабатывает ничего из двух тем.

Я попытался сделать следующее:

  1. Остановил всех брокеров, удалил каталог kafka-logs для каждого брокера и перезапустил брокеров.Это не решило проблему.
  2. Остановил zookeeper и всех брокеров, удалил журналы zookeeper, а также журналы kafka для каждого брокера, перезапустил zookeeper и брокеров и снова создал темы.Это также не решило проблему.

Я не могу найти что-либо, связанное с этой ошибкой, в официальных документах или в Интернете.Кто-нибудь имеет представление о том, почему я получаю эту ошибку внезапно?

РЕДАКТИРОВАТЬ:

Из 3 брокеров, 2 брокера (брокер-0 и брокер-2)непрерывно генерировать эти журналы:

Журналы Broker-0:

[2018-06-09 02:03:08,750] INFO [ReplicaFetcher replicaId=0, leaderId=1, fetcherId=0] Retrying leaderEpoch request for partition initial11_topic-1 as the leader reported an error: NOT_LEADER_FOR_PARTITION (kafka.server.ReplicaFetcherThread)
[2018-06-09 02:03:08,750] INFO [ReplicaFetcher replicaId=0, leaderId=1, fetcherId=0] Retrying leaderEpoch request for partition initial12_topic-0 as the leader reported an error: NOT_LEADER_FOR_PARTITION (kafka.server.ReplicaFetcherThread)

Журналы Broker-2:

[2018-06-09 02:04:46,889] INFO [ReplicaFetcher replicaId=2, leaderId=1, fetcherId=0] Retrying leaderEpoch request for partition initial11_topic-1 as the leader reported an error: NOT_LEADER_FOR_PARTITION (kafka.server.ReplicaFetcherThread)
[2018-06-09 02:04:46,889] INFO [ReplicaFetcher replicaId=2, leaderId=1, fetcherId=0] Retrying leaderEpoch request for partition initial12_topic-0 as the leader reported an error: NOT_LEADER_FOR_PARTITION (kafka.server.ReplicaFetcherThread)

Broker-1 показывает следующие журналы:

[2018-06-09 01:21:26,689] INFO [GroupMetadataManager brokerId=1] Removed 0 expired offsets in 0 milliseconds. (kafka.coordinator.group.GroupMetadataManager)
[2018-06-09 01:31:26,689] INFO [GroupMetadataManager brokerId=1] Removed 0 expired offsets in 0 milliseconds. (kafka.coordinator.group.GroupMetadataManager)
[2018-06-09 01:39:44,667] ERROR [KafkaApi-1] Number of alive brokers '0' does not meet the required replication factor '1' for the offsets topic (configured via 'offsets.topic.replication.factor'). This error can be ignored if the cluster is starting up and not all brokers are up yet. (kafka.server.KafkaApis)
[2018-06-09 01:41:26,689] INFO [GroupMetadataManager brokerId=1] Removed 0 expired offsets in 0 milliseconds. (kafka.coordinator.group.GroupMetadataManager)

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

Подробности темы:

    [zk: localhost:2181(CONNECTED) 3] get /brokers/topics/initial11_topic
{"version":1,"partitions":{"1":[1,0,2],"0":[0,2,1]}}
cZxid = 0x53
ctime = Sat Jun 09 01:25:42 EDT 2018
mZxid = 0x53
mtime = Sat Jun 09 01:25:42 EDT 2018
pZxid = 0x54
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 52
numChildren = 1
[zk: localhost:2181(CONNECTED) 4] get /brokers/topics/initial12_topic
{"version":1,"partitions":{"1":[2,1,0],"0":[1,0,2]}}
cZxid = 0x61
ctime = Sat Jun 09 01:25:47 EDT 2018
mZxid = 0x61
mtime = Sat Jun 09 01:25:47 EDT 2018
pZxid = 0x62
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 52
numChildren = 1
[zk: localhost:2181(CONNECTED) 5] get /brokers/topics/final11_topic
{"version":1,"partitions":{"1":[0,1,2],"0":[2,0,1]}}
cZxid = 0x48
ctime = Sat Jun 09 01:25:32 EDT 2018
mZxid = 0x48
mtime = Sat Jun 09 01:25:32 EDT 2018
pZxid = 0x4a
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 52
numChildren = 1

Любая подсказка?

1 Ответ

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

Я выяснил проблему.Это произошло из-за неправильной конфигурации в server.properties broker-1:

advertised.listeners=PLAINTEXT://10.23.152.109:9094

Ошибочный порт для advertised.listeners был изменен на тот же, что и порт advertised.listeners broker-2.

...