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)
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 .
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:
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:
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
Cela devrait résoudre le problème.
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.
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.
Suit l'approche suggérée par @SkyWalker
Suivez les étapes ci-dessous:
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.