Révision:
Utilisez la commande suivante pour vérifier le statut de Kafka en cours. Comme suit:
kafka.service Chargé : chargé (/usr/lib/systemd/system/kafka.service ; Activé; préréglage du fournisseur : désactivé) Actif : échec (Résultat : code de sortie) depuis mercredi. 2021-09-22 14:43:11 CST ; Il y a 1h 43 Processus : 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (code=exited, status=1/FAILURE) PID principal : 7363 (code=sorti, statut=1/DÉFAILLANCE)
22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,295] WARN [Broker ReplicaManager=1] Arrêt de servir les répliques dans dir/tmp/kafka-logs ( kafka.server.ReplicaManager) 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,298] AVERTISSEMENT [GroupCoordinator 1] : Échec d’écrire des métadonnées vides pour le groupe KqBatchAna : Ce n’est pas la bonne coordinateur. (kafka.co... upCoordinator) 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,303] INFO [ReplicaFetcherManager sur le broker 1] Récupération du récupérateur pour partitions HashSet(__consumer_offsets-22, __ consumer_offsets-30, ...-8, __consumer 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,304] INFO [ReplicaAlterLogDirsManager sur le broker 1] Récupération du récupérateur pour partitions HashSet(__consumer_ décalages-22, __consumer_offsets... fsets-8, __con 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,378] WARN [ReplicaManager broker=1] Le broker 1 a arrêté la récupération des partitions __consumer_offsets-22,__ consumer_offsets-30 __consumer_... fsets-21,__con 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,379] AVERTISSEMENT Arrêt de la diffusion des journaux dans dir/tmp/kafka-logs (kafka.log.LogManager) 22 sept. 14:43:11 devops02 kafka-server-start.sh[7363] : [2021-09-22 14:43:11,386] ERREUR Courtier d’arrêt car tous les dirs de journal dans /tmp/kafka-logs ont échoué (kafka.log.LogManager) 22 sept. 14:43:11 devops02 systemd[1] : kafka.service : processus principal sorti, code=sorti, statut=1/ÉCHEC 22 sept. 14:43:11 devops02 systemd[1] : Unité kafka.service est entrée en état d’échec. 22 sept. 14:43:11 devops02 systemd[1] : kafka.service a échoué.
Hint: Some lines were ellipsized, use -l to show in full.
Rendez-vous dans le répertoire journal Kafka /usr/local/kafka/logs pour consulter les fichiers journals server.log, comme suit :
[2021-09-22 14:43:11,286] ERREUR Erreur lors du déroulement du segment de journal pour __consumer_offsets-8 dans dir/tmp/kafka-logs (kafka.server.LogDirFailureChannel)
java.io.FileNotFoundException: /tmp/kafka-logs/__consumer_offsets-8/00000000000000000000.index (No such file or directory) at java.io.RandomAccessFile.open0(Méthode native) sur java.io.RandomAccessFile.open(RandomAccessFile.java :316) à java.io.RandomAccessFile. <init>(RandomAccessFile.java :243) à kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala :182) sur kafka.log.AbstractIndex.resize(AbstractIndex.scala :175) à kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala :241) à kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala :241) à kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala :507) à kafka.log.Log.$anonfun$roll$8(Log.scala :2037) à kafka.log.Log.$anonfun$roll$8$adapted(Log.scala :2037) Chez Scala. Option.foreach(Option.scala :437) à kafka.log.Log.$anonfun$roll$2(Log.scala :2037) à kafka.log.Log.roll(Log.scala :2453) à kafka.log.Log.maybeRoll(Log.scala :1988) à kafka.log.Log.append(Log.scala :1263) à kafka.log.Log.appendAsLeader(Log.scala :1112) sur kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala :1069) sur kafka.cluster.Partition.appendRecordsToLeader(Partition.scala :1057) at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$6(ReplicaManager.scala :958) sur scala.collection.Iterator$$anon$9.next(Iterator.scala :575) sur scala.collection.mutable.Growable.addAll(Growable.scala :62) sur scala.collection.mutable.Growable.addAll$(Growable.scala :57) sur scala.collection.immutable.MapBuilderImpl.addAll(Map.scala :692) sur scala.collection.immutable.Map$.from(Map.scala :643) sur scala.collection.immutable.Map$.from(Map.scala :173) sur scala.collection.MapOps.map(Map.scala :266) sur scala.collection.MapOps.map$(Map.scala :266) sur scala.collection.AbstractMap.map(Map.scala :372) at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala :946) sur kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala :616) sur kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala :325) sur kafka.coordinator.group.GroupCoordinator.$anonfun$onCompleteJoin$1(GroupCoordinator.scala :1206) sur kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala :227) sur kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala :1178) sur kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala :43) sur kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala :72) sur kafka.coordinator.group.DelayedJoin.$anonfun$tryComplete$1(DelayedJoin.scala :38) sur kafka.coordinator.group.GroupCoordinator.$anonfun$tryCompleteJoin$1(GroupCoordinator.scala :1172) at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala :17) sur kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala :227) sur kafka.coordinator.group.GroupCoordinator.tryCompleteJoin(GroupCoordinator.scala :1171) sur kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala :38) sur kafka.server.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala :110) sur kafka.server.DelayedOperationPurgatory.tryCompleteElseWatch(DelayedOperation.scala :234) sur kafka.coordinator.group.GroupCoordinator.prepareRebalance(GroupCoordinator.scala :1144) sur kafka.coordinator.group.GroupCoordinator.$anonfun$maybePrepareRebalance$1(GroupCoordinator.scala :1118) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala :18) sur kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala :227) sur kafka.coordinator.group.GroupCoordinator.maybePrepareRebalance(GroupCoordinator.scala :1117) sur kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala :1156) sur kafka.coordinator.group.Group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala :498) sur scala.collection.immutable.List.map(List.scala :246) sur kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$2(GroupCoordinator.scala :470) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala :18) sur kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala :227) sur kafka.coordinator.group.GroupCoordinator.handleLeaveGroup(GroupCoordinator.scala :467) at kafka.server.KafkaApis.handleLeaveGroupRequest(KafkaApis.scala :1659) at kafka.server.KafkaApis.handle(KafkaApis.scala :180) at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala :74) at java.lang.Thread.run(Thread.java :748) Causes d’erreur :Linux nettoie régulièrement les fichiers dans le dossier /tmp, le répertoire de fichiers kafka est stocké par défaut/tmp/kafka-logsce qui provoquait un nettoyage régulier, entraînant un fonctionnement anormal du programme.
Sous CentOS 7, il existe 3 services système liés au nettoyage :
systemd-tmpfiles-setup.service : Créer des fichiers et répertoires volatils systemd-tmpfiles-setup-dev.service : Créer des nœuds de périphériques statiques dans /dev systemd-tmpfiles-clean.service : Nettoyage des annuaires temporaires Il existe également 3 profils liés, comme suit :
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf Utilisez la commande suivante pour consulter les journaux liés aux fichiers tmp :
Répertoire TMP dans/usr/lib/tmpfiles.d/tmp.confLa configuration du fichier est celle illustrée dans la figure suivante :
# Ce fichier fait partie de systemd.
# # SystemD est un logiciel libre ; Vous pouvez le redistribuer et/ou le modifier # selon les termes de la licence publique générale mineure GNU telle que publiée par # la Free Software Foundation ; soit la version 2.1 de la licence, soit # (à votre choix) Toute version ultérieure.
# Voir tmpfiles.d(5) pour plus de détails
# Effacez séparément les annuaires tmp, pour les rendre plus faciles à dépasser v /tmp 1777 racine 10d v /var/tmp 1777 racine racine 30d
# Exclure les points de montage d’espace de noms créés avec PrivateTmp=oui x /tmp/systemd-private- %b-* X /tmp/systemd-private- %b-*/tmp x /var/tmp/systemd-private- %b-* X /var/tmp/systemd-private- %b-*/tmp
Solution 1
Modifier le fichier de configuration de Kafka /config/server.properties pour modifier la configuration des log.dirs, par exemple :
Solution 2
Ajoutez un répertoire d’exclusion et modifiez le fichier : /usr/lib/tmpfiles.d/tmp.conf
(Fin)
|