Неустранимая ошибка при запуске KafkaServer, слишком много открытых файлов - PullRequest
2 голосов
/ 27 апреля 2020

Невозможно запустить сервер kafka, уровень исключения ниже

ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) java.nio.file.FileSystemException: /kafka_2.12-2.2.0/kafka-store/kafka/cleaner-offset-checkpoint: Too many open files
            at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
            at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
            at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
            at java.nio.file.Files.newByteChannel(Files.java:361)
            at java.nio.file.Files.createFile(Files.java:632)
            at kafka.server.checkpoints.CheckpointFile.<init>(CheckpointFile.scala:45)
            at kafka.server.checkpoints.OffsetCheckpointFile.<init>(OffsetCheckpointFile.scala:57)
            at kafka.log.LogCleanerManager.$anonfun$checkpoints$1(LogCleanerManager.scala:69)
            at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)
            at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
            at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
            at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
            at scala.collection.TraversableLike.map(TraversableLike.scala:237)
            at scala.collection.TraversableLike.map$(TraversableLike.scala:230)
            at scala.collection.AbstractTraversable.map(Traversable.scala:108)
            at kafka.log.LogCleanerManager.<init>(LogCleanerManager.scala:68)
            at kafka.log.LogCleaner.<init>(LogCleaner.scala:103)
            at kafka.log.LogManager.<init>(LogManager.scala:116)
            at kafka.log.LogManager$.apply(LogManager.scala:1019)
            at kafka.server.KafkaServer.startup(KafkaServer.scala:240)
            at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:38)
            at kafka.Kafka$.main(Kafka.scala:75)
            at kafka.Kafka.main(Kafka.scala)

В каком облаке может быть причина возникновения исключения при запуске службы? Он работал нормально и вдруг начал получать эту ошибку. Для предела дескриптора открытого файла было установлено значение по умолчанию, равное 1024. Попытался выполнить следующие шаги, но ни один из них не сработал.

  1. Увеличить ограничение дескриптора открытого файла до 4096.
  2. Произошла перезагрузка системы.

Наконец это сработало после очистки данных kafka из хранилища kafka. пожалуйста, помогите.

1 Ответ

1 голос
/ 28 апреля 2020

kafka выпуски

Существует несколько проблем, влияющих на версию kafka v2.2:

Некоторые проблемы были исправлены в [KAFKA-7757] Слишком много открыть файлы после java .io.IOException: подключение к n было отключено до того, как был прочитан ответ - ASF JIRA

На самом деле, это не проблема kafka. Появляется из-за ограничений linux filesystem.

Как проверить?

Чтобы отладить это, попробуйте следующие команды:

cat /proc/sys/fs/file-max

или

sysctl fs.file-max

Отображение текущего мягкого предела:

ulimit -Sn  

Отображение текущего жесткого предела:

ulimit -Hn

Как исправить?

Попробуйте увеличить эти значения

ulimit -Hn <Max_files_count>
ulimit -Sn <Max_files_count>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...