Брокер Kafka неожиданно закрывается - PullRequest
1 голос
/ 10 апреля 2020

В одном кластере / экземпляре установки kafka / zookeeper v2.4.1 (двоичный файл kafka_2.13-2.4.1.tgz ) в Windows Подсистема для Linux (WSL) с Ubuntu 18.04 , брокер kafka неожиданно завершает работу во время очистки файлов журнала со следующим сообщением об ошибке:

ERROR Failed to clean up log for __consumer_offsets-11 in dir /tmp/kafka-logs due to IOException (kafka.server.LogDirFailureChannel)
java.io.IOException: Invalid argument
    at java.io.RandomAccessFile.setLength(Native Method)
    at kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:188)
    at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17)
    at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:253)
    at kafka.log.AbstractIndex.resize(AbstractIndex.scala:174)
    at kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala:240)
    at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17)
    at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:253)
    at kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala:240)
    at kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:508)
    at kafka.log.Cleaner.cleanSegments(LogCleaner.scala:595)
    at kafka.log.Cleaner.$anonfun$doClean$6(LogCleaner.scala:530)
    at kafka.log.Cleaner.$anonfun$doClean$6$adapted(LogCleaner.scala:529)
    at scala.collection.immutable.List.foreach(List.scala:305)
    at kafka.log.Cleaner.doClean(LogCleaner.scala:529)
    at kafka.log.Cleaner.clean(LogCleaner.scala:503)
    at kafka.log.LogCleaner$CleanerThread.cleanLog(LogCleaner.scala:372)
    at kafka.log.LogCleaner$CleanerThread.cleanFilthiestLog(LogCleaner.scala:345)
    at kafka.log.LogCleaner$CleanerThread.tryCleanFilthiestLog(LogCleaner.scala:325)
    at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:314)
    at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)

Каталог __ consumer_offsets-11 не удается очистить, существует:

Содержимое каталога журналов Kafka

Я попробовал следующее:

  • удаление каталога журналов вручную и повторно запустив kafka / zookeeper, однако та же самая ошибка все еще происходит в более поздний момент времени.
  • изменяя каталог журналов с конфигурации сервера на гнездо в другом месте, а не в / tmp ; не удалось решить проблему.

Эта ошибка возникает много раз ежедневно, независимо от конфигурации хранения журнала. Свойства конфигурации сервера ( server.properties ) являются параметрами по умолчанию:

broker.id=0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

1 Ответ

0 голосов
/ 11 апреля 2020

Кажется, проблема в вашем log.dirs, который в настоящее время установлен на tmp/kafka-logs. Это может вызвать некоторые проблемы, когда ваша машина выключится, так как содержимое tmp/ будет очищено.


Попробуйте изменить путь на постоянное местоположение вместо tmp/

...