web-dev-qa-db-fra.com

Kafka: impossible de démarrer Kafka - le processus ne peut pas accéder au fichier 00000000000000000000.timeindex

Passionné de Kafka, besoin de peu d'aide ici. Je ne parviens pas à démarrer kafka car le fichier \00000000000000000000.timeindex est utilisé par un autre processus. Ci-dessous sont les journaux:

[2017-08-09 22:49:22,811] FATAL [Kafka Server 0], Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
Java.nio.file.FileSystemException: \installation\kafka_2.11-0.11.0.0\log\test-0\00000000000000000000.timeindex: The process cannot access the file because it is being used by another process.

        at Sun.nio.fs.WindowsException.translateToIOException(WindowsException.Java:86)
        at Sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.Java:97)
        at Sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.Java:102)
        at Sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.Java:269)
        at Sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.Java:108)
        at Java.nio.file.Files.deleteIfExists(Files.Java:1165)
        at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:311)
        at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:272)
        at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
        at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
        at kafka.log.Log.loadSegmentFiles(Log.scala:272)
        at kafka.log.Log.loadSegments(Log.scala:376)
        at kafka.log.Log.<init>(Log.scala:179)
        at kafka.log.Log$.apply(Log.scala:1580)
        at kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$5$$anonfun$apply$12$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:172)
        at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:57)
        at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511)
        at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
        at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
        at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
        at Java.lang.Thread.run(Thread.Java:745)
[2017-08-09 22:49:22,826] INFO [Kafka Server 0], shutting down (kafka.server.KafkaServer)
14
a_a

J'ai eu le même problème. La seule façon pour moi de comprendre cela consistait simplement à supprimer le répertoire C:\tmp\kafka-logs. Après cela, j'ai pu démarrer le serveur Kafka.

Vous perdrez vos données et le décalage commencera à partir de 0 .

20
patelb
Java.nio.file.FileSystemException: \installation\kafka_2.11-0.11.0.0\log\test-0\00000000000000000000.timeindex: The process cannot access the file because it is being used by another process.

00000000000000000000.timeindex est utilisé par un autre processus. Donc, vous pouvez supprimer le processus en utilisant la commande suivante

$ ps aux | grep zookeeper
$ Sudo kill -9 <PID> 

Ici, le PID est l'ID de processus du zookeeper.


Le problème n'est pas encore résolu. Il est décrit ici: https://issues.Apache.org/jira/browse/KAFKA-1194

Il y a 2 façons de solution temporaire donnée par ephemeral972:

  1. [Recommandé] Vous devez nettoyer les identifiants de courtier dans le chemin zookeeper/brokers/ids/[]. Utilisez la commande de suppression de l’outil zk-cli pour nettoyer les chemins. Démarrez vos courtiers et vérifiez qu’ils s’inscrivent auprès du coordonnateur.
  2. Une autre solution consiste à changer votre identifiant de courtier de la configuration du serveur kafka et à redémarrer le courtier. Cependant, cela pourrait corrompre vos partitions et les données ne sont pas recommandées
3
SkyWalker

J'ai aussi eu cette erreur lors de l'exécution de Kafka sous Windows. Vous pouvez éviter cette erreur en modifiant la configuration par défaut dans le fichier sever.properties.

S'il vous plaît suivez ces étapes:

  1. Accédez au dossier de configuration de l'installation de kafka.
  2. Ouvrez le fichier Server.properties
  3. vous verrez la config

Liste de répertoires sous lesquels stocker les fichiers journaux, séparés par des virgules:

log.dirs=/tmp/logs/kafka**

Remplacez la valeur de log.dirs=/tmp/logs/kafka par une autre valeur, par exemple:

log.dirs=/tmp/logs/kafka1
  1. Maintenant, redémarrez votre serveur kafka.

Cela devrait résoudre le problème.

0
spock

J'ai rencontré le même problème et voici comment je l'ai résolu.

Modifiez le chemin log.dirs dans server.properties Log.dirs = C:\kafka\logs

Une autre solution qui a fonctionné: Supprimez tous les fichiers du répertoire ci-dessous, quelle que soit leur configuration.

0
user1775015

J'avais un problème similaire sur Windows, en partie parce que j'avais supprimé plusieurs sujets (car je n'ai trouvé aucun autre moyen de vider uniquement les messages de ces sujets) ... C'est ce qui a fonctionné pour moi.

Change the logs.dir in config/server.properties to new location
Change the dataDir in config/zookeeper.properties to new location
Restart zookeeper and kafka

Ce qui précède fonctionnera évidemment si vous n’avez pas d’autres sujets que ceux que vous avez supprimés sur le zookeeper/kafka, mais s’il existe d’autres sujets pour lesquels vous souhaitez conserver la configuration, je pense que la solution proposée par @Sumit Das pourrait fonctionner . J'ai eu des problèmes de démarrage de zkCli sur mes fenêtres et je n'avais que les sujets que j'ai supprimés de mes courtiers, afin que je puisse faire les étapes ci-dessus en toute sécurité et m'en sortir.

0
fatcook

Suit l'approche suggérée par @SkyWalker

Suivez les étapes ci-dessous:

  1. Élément de liste. Ouvrez zkCli et obtenez tout dans le courtier. Voir la capture d'écran ci-dessous.

     List items inside broker

  2. Allez dans les sujets et appuyez sur le double onglet. Vous obtiendrez tous les sujets énumérés ici.

     List all the topics

  3. Supprimez chaque sujet ensuite.

 Delete each topic

0
Sumit Das

Toutes les réponses vous donnent la même solution en supprimant des données. 

Ce qui en fait, vous devez juste arrêter Kafka et Zookeepter correctement.

Vous venez d'exécuter ces deux commandes dans l'ordre

kafka-server-stop.sh

zookeeper-server-stop.sh

Alors la prochaine fois que vous commencerez, vous ne verrez aucun problème.

0
Surasin Tancharoen