Recenzja:
Użyj następującego polecenia, aby sprawdzić status działania Kafki. Następujący sposób:
kafka.service Załadowane: załadowane (/usr/lib/systemd/system/kafka.service; Włączone; Ustawienie sprzedawcy: wyłączone) Aktywny: nieudane (Wynik: kod wyjściowy) od środy 2021-09-22 14:43:11 CST; 1h 43min temu Proces: 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (code=exited, status=1/FAILURE) Główny PID: 7363 (kod=zakończone, status=1/NIEPOWODZENIE)
22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,295] WARN [ReplicaManager broker=1] Koniec serwowania replik w dir /tmp/kafka-logs ( kafka.server.ReplicaManager) 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,298] UWAGA [GroupCoordinator 1]: Nie udało się zapisać pustych metadanych dla grupy KqBatchAna: To nie jest poprawne Koordynator. (kafka.co... upCoordinator) 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,303] INFO [ReplicaFetcherManager na brokerze 1] Usunięto fetcher for partitions HashSet(__consumer_offsets-22, __ consumer_offsets-30, ...-8, __consumer 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,304] INFO [ReplicaAlterLogDirsManager na brokerze 1] Usunięto fetcher for partitions HashSet(__consumer_ offsets-22, __consumer_offsets... fsets-8, __con 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,378] OSTRZEŻENIE [ReplicaManager broker=1] Broker 1 zatrzymał pobieranie partycji __consumer_offsets-22,__ consumer_offsets-30,__consumer_... fsets-21,__con 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,379] UWAGA: Zatrzymanie serwowania logów w dir /tmp/kafka-logs (kafka.log.LogManager) 22 września 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,386] BŁĄD Wyłączenie brokera, ponieważ wszystkie rejestry logów w /tmp/kafka-logs zawiodły (kafka.log.LogManager) 22 września 14:43:11 devops02 systemd[1]: kafka.service: główny proces zakończony, code=exited, status=1/FAILURE 22 września 14:43:11 devops02 systemd[1]: Jednostka kafka.service weszła w stan niepowodzenia. Sep 22 14:43:11 devops02 systemd[1]: kafka.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
Przejdź do katalogu logów Kafka /usr/local/kafka/logs, aby zobaczyć pliki server.log logów, w następujący sposób:
[2021-09-22 14:43:11,286] BŁĄD Błąd podczas rolowania segmentu logu dla __consumer_offsets-8 w 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(Native Method) at java.io.RandomAccessFile.open(RandomAccessFile.java:316) na java.io.RandomAccessFile. <init>(RandomAccessFile.java:243) na kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:182) pod adresem kafka.log.AbstractIndex.resize(AbstractIndex.scala:175) w kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala:241) at kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala:241) at kafka.log.LogSegment.onBestańInactiveSegment(LogSegment.scala:507) at kafka.log.Log.$anonfun$roll$8(Log.scala:2037) at kafka.log.Log.$anonfun$roll$8$adapted(Log.scala:2037) W Scali. Option.foreach(Option.scala:437) at kafka.log.Log.$anonfun$roll$2(Log.scala:2037) na kafka.log.Log.roll(Log.scala:2453) na kafka.log.Log.maybeRoll(Log.scala:1988) at kafka.log.Log.append(Log.scala:1263) at kafka.log.Log.appendAsLeader(Log.scala:1112) at kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:1069) at kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:1057) at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$6(ReplicaManager.scala:958) at scala.collection.Iterator$$anon$9.next(Iterator.scala:575) na scala.collection.mutable.Growable.addAll(Growable.scala:62) na scala.collection.mutable.Growable.addAll$(Growable.scala:57) na stronie scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:692) na scala.collection.immutable.Map$.from(Map.scala:643) na scala.collection.immutable.Map$.from(Map.scala:173) na scala.collection.MapOps.map(Map.scala:266) na scala.collection.MapOps.map$(Map.scala:266) na scala.collection.AbstractMap.map(Map.scala:372) at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:946) at kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:616) at kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala:325) at kafka.coordinator.group.GroupCoordinator.$anonfun$onCompleteJoin$1(GroupCoordinator.scala:1206) at kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) na stronie kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala:1178) na kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala:43) na kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala:72) at kafka.coordinator.group.DelayedJoin.$anonfun$tryComplete$1(DelayedJoin.scala:38) at kafka.coordinator.group.GroupCoordinator.$anonfun$tryCompleteJoin$1(GroupCoordinator.scala:1172) at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17) at kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) at kafka.coordinator.group.GroupCoordinator.tryCompleteJoin(GroupCoordinator.scala:1171) at kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala:38) at kafka.server.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala:110) na kafka.server.DelayedOperationPurgatory.tryCompleteElseWatch(DelayedOperation.scala:234) at kafka.coordinator.group.GroupCoordinator.prepareRebalance(GroupCoordinator.scala:1144) at kafka.coordinator.group.GroupCoordinator.$anonfun$maybePrepareRebalance$1(GroupCoordinator.scala:1118) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) at kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) at kafka.coordinator.group.GroupCoordinator.maybePrepreprebalance(GroupCoordinator.scala:1117) at kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala:1156) na stronie kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala:498) na scala.collection.immutable.List.map(List.scala:246) at kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$2(GroupCoordinator.scala:470) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) at kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) at 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) Błąd powoduje:Linux regularnie czyści pliki w katalogu /tmp, katalog plików Kafka jest domyślnie przechowywany/tmp/kafka-logsco powodowało regularne czyszczenie programu, co skutkowało nieprawidłowym działaniem programu.
W CentOS 7 istnieją 3 usługi systemowe związane z czyszczeniem:
systemd-tmpfiles-setup.service :Utwórz pliki i katalogi ulotne systemd-tmpfiles-setup-dev.service:Create static device nodes in /dev systemd-tmpfiles-clean.service :Czyszczenie katalogów tymczasowych Istnieją także 3 powiązane profile, które przedstawiają się następująco:
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf Użyj następującego polecenia, aby zobaczyć logi związane z tmpfiles:
Katalog TMP w/usr/lib/tmpfiles.d/tmp.confKonfiguracja pliku jest przedstawiona na poniższym rysunku:
# Ten plik jest częścią systemd.
# # systemd to wolne oprogramowanie; Możesz je redystrybuować i/lub modyfikować # na warunkach licencji GNU Lesser General Public License opublikowanej przez # Fundacja Wolnego Oprogramowania; albo wersja 2.1 Licencji, albo # (według twojego wyboru) Każda późniejsza wersja.
# Zobacz tmpfiles.d(5) dla szczegółów
# Czyść katalogi tmp osobno, aby łatwiej je nadpisać V /tmp 1777 Root 10d V /var/tmp 1777 korzeń korzeniowy 30d
# Wyklucz punkty montażowe w przestrzeni nazw utworzone za pomocą PrivateTmp=tak x /tmp/systemd-private-%b-* X /tmp/systemd-private-%b-*/tmp x /var/tmp/systemd-private-%b-* X /var/tmp/systemd-private-%b-*/tmp
Rozwiązanie 1
Zmodyfikuj plik konfiguracyjny Kafki /config/server.properties, aby zmodyfikować konfigurację log.dirs, na przykład:
Rozwiązanie 2
Dodaj katalog wykluczeń i edytuj plik: /usr/lib/tmpfiles.d/tmp.conf
(Koniec)
|