Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 10663|Risposta: 2

Con CentOS 7, Kafka spesso blocca le soluzioni

[Copiato link]
Pubblicato su 22/09/2021 17:31:38 | | | |
Recensione:

Il sistema Kafka Windows si blocca dopo essere stato avviato per un certo periodo
https://www.itsvse.com/thread-9984-1-1.html

ERRORE Kafka di Windows: Errore non riuscito a pulire il log per __consumer_offsets
https://www.itsvse.com/thread-9980-1-1.html

Usa il seguente comando per controllare lo stato di esecuzione di Kafka. Come segue:

kafka.service
   Caricato: caricato (/usr/lib/systemd/system/kafka.service; Abilitato; Preset vendor: disabilitato)
   Attivo: fallito (Risultato: codice di uscita) da mered 2021-09-22 14:43:11 CST; 1h 43 min fa
  Processo: 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (code=exited, status=1/FAILURE)
PID principale: 7363 (codice=uscito, stato=1/FALLIMENTO)

22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,295] WARN [ReplicaManager broker=1] Smetto di servire repliche in dir /tmp/kafka-logs ( kafka.server.ReplicaManager)
22 settembre 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,298] WARN [GroupCoordinator 1]: Non è riuscito a scrivere metadati vuoti per il gruppo KqBatchAna: Questo non è il corretto coordinatore. (kafka.co... upCoordinator)
22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,303] INFO [ReplicaFetcherManager sul broker 1] Rimosso il recupero per le partizioni HashSet(__consumer_offsets-22, __ consumer_offsets-30, ...-8, __consumer
22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,304] INFO [ReplicaAlterLogDirsManager sul broker 1] Rimosso il recupero per le partizioni HashSet(__consumer_ offset-22, __consumer_offsets... fsets-8, __con
22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,378] WARN [ReplicaManager broker=1] Il broker 1 ha fermato il recupero per le partizioni __consumer_offsets-22,__ consumer_offsets-30.__consumer_... fsets-21,__con
22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,379] WARN Cessazione di fornire i log in dir/tmp/kafka-logs (kafka.log.LogManager)
22 Set 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,386] ERRORE Cleardown broker perché tutti i dirigenti dei log in /tmp/kafka-logs sono falliti (kafka.log.LogManager)
Set 22 14:43:11 devops02 systemd[1]: kafka.service: main process exited, code=exited, status=1/FAILURE
22 settembre 14:43:11 devops02 systemd[1]: Unità kafka.service è entrata in stato di guasto.
22 settembre 14:43:11 devops02 systemd[1]: kafka.service fallito.
Hint: Some lines were ellipsized, use -l to show in full.



Vai alla directory di log di Kafka /usr/local/kafka/logs per visualizzare i file di log server.log, come segue:

[2021-09-22 14:43:11,286] ERRORE Errore durante la registrazione del segmento di log per __consumer_offsets-8 in 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(Metodo nativo)
        su java.io.RandomAccessFile.open(RandomAccessFile.java:316)
        su java.io.RandomAccessFile. <init>(RandomAccessFile.java:243)
        a kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:182)
        a kafka.log.AbstractIndex.resize(AbstractIndex.scala:175)
        a kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala:241)
        a kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala:241)
        a kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:507)
        a kafka.log.Log.$anonfun$roll$8(Log.scala:2037)
        a kafka.log.Log.$anonfun$roll$8$adapted(Log.scala:2037)
        Alla Scala. Option.foreach(Option.scala:437)
        a kafka.log.Log.$anonfun$roll$2(Log.scala:2037)
        a kafka.log.Log.roll(Log.scala:2453)
        a kafka.log.Log.maybeRoll(Log.scala:1988)
        a kafka.log.Log.append(Log.scala:1263)
        a kafka.log.Log.appendAsLeader(Log.scala:1112)
        su kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:1069)
        su kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:1057)
        at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$6(ReplicaManager.scala:958)
        su scala.collection.Iterator$$anon$9.next(Iterator.scala:575)
        su scala.collection.mutable.Growable.addAll(Growable.scala:62)
        su scala.collection.mutable.Growable.addAll$(Growable.scala:57)
        su scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:692)
        su scala.collection.immutable.Map$.from(Map.scala:643)
        su scala.collection.immutable.Map$.from(Map.scala:173)
        su scala.collection.MapOps.map(Map.scala:266)
        su scala.collection.MapOps.map$(Map.scala:266)
        su scala.collection.AbstractMap.map(Map.scala:372)
        at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:946)
        su kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:616)
        su kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala:325)
        su kafka.coordinator.group.GroupCoordinator.$anonfun$onCompleteJoin$1(GroupCoordinator.scala:1206)
        su kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        su kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala:1178)
        su kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala:43)
        su kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala:72)
        su kafka.coordinator.group.DelayedJoin.$anonfun$tryComplete$1(DelayedJoin.scala:38)
        su kafka.coordinator.group.GroupCoordinator.$anonfun$tryCompleteJoin$1(GroupCoordinator.scala:1172)
        at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17)
        su kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        su kafka.coordinator.group.GroupCoordinator.tryCompleteJoin(GroupCoordinator.scala:1171)
        su kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala:38)
        su kafka.server.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala:110)
        su kafka.server.DelayedOperationPurgatory.tryCompleteElseWatch(DelayedOperation.scala:234)
        su kafka.coordinator.group.GroupCoordinator.prepareRebalance(GroupCoordinator.scala:1144)
        su kafka.coordinator.group.GroupCoordinator.$anonfun$maybePrepareRebalance$1(GroupCoordinator.scala:118)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
        su kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        su kafka.coordinator.group.GroupCoordinator.maybePrepareRebalance(GroupCoordinator.scala:1117)
        su kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala:1156)
        su kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala:498)
        su scala.collection.immutable.List.map(List.scala:246)
        su kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$2(GroupCoordinator.scala:470)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
        su kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        su 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)

Cause dell'errore:Linux pulisce regolarmente i file nella cartella /tmp, la cartella file kafka è memorizzata di default/tmp/kafka-logsil che comportava una pulizia regolare della directory, causando un funzionamento anomalo del programma.

Sotto CentOS 7, ci sono 3 servizi di sistema relativi alla pulizia:

systemd-tmpfiles-setup.service :Crea file e directory volatili
systemd-tmpfiles-setup-dev.service:Crea nodi statici di dispositivi in /dev
systemd-tmpfiles-clean.service :Pulizia delle directory temporanee

Ci sono anche 3 profili correlati, come segue:

/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf

Usa il seguente comando per visualizzare i log relativi ai tmpfile:



Directorio tmp in/usr/lib/tmpfiles.d/tmp.confLa configurazione del file è la mostrata nella figura seguente:

# Questo file fa parte di systemd.
#
# SystemD è software libero; Puoi ridistribuirlo e/o modificarlo
# secondo i termini della GNU Lesser General Public License come pubblicato da
# la Free Software Foundation; o la versione 2.1 della Licenza, oppure
# (a tua scelta) Qualsiasi versione successiva.

# Vedi tmpfiles.d(5) per i dettagli

# Liberare separatamente le directory tmp, per renderle più facili da sovrascrivere
V /TMP 1777 radice 10d
v /var/tmp 1777 radice radice 30d

# Escludi i punti di montaggio dello spazio dei nomi creati con PrivateTmp=sì
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp



Soluzione 1

Modifica il file di configurazione di Kafka /config/server.properties per modificare la configurazione dei log.dirs, ad esempio:



Soluzione 2

Aggiungi una cartella di esclusione e modifica il file: /usr/lib/tmpfiles.d/tmp.conf


(Fine)




Precedente:CentOS 7 installa l'ambiente di esecuzione con ASP.NET Core 3.1
Prossimo:Introdotto brevemente il comando nslookup
Pubblicato su 22/09/2021 19:51:17 |
Vieni a imparare di nuovo。。。。。
 Padrone di casa| Pubblicato su 07/02/2022 14:31:46 |
Dai un'occhiata al comando del registro delle pulizie:


2 feb 18:18:09 centos7-itsvse systemd[1]: Inizio pulizia delle directory temporanee...
02 feb 18:18:09 centos7-itsvse systemd[1]: Avviata la pulizia delle directory temporanee.
03 feb 18:19:09 centos7-itsvse systemd[1]: Inizio pulizia delle directory temporanee...
03 feb 18:19:09 centos7-itsvse systemd[1]: Avviata la pulizia delle directory temporanee.
04 feb 18:20:09 centos7-itsvse systemd[1]: Inizio pulizia delle directory temporanee...
04 feb 18:20:09 centos7-itsvse systemd[1]: Avviata la pulizia delle directory temporanee.
05 feb 18:21:09 centos7-itsvse systemd[1]: Inizio pulizia delle directory temporanee...
05 feb 18:21:09 centos7-itsvse systemd[1]: Avviata la pulizia delle directory temporanee.
06 feb 18:22:09 centos7-itsvse systemd[1]: Inizio pulizia delle directory temporanee...
06 feb 18:22:09 centos7-itsvse systemd[1]: Avviata la pulizia delle directory temporanee.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com