Αναθεώρηση:
Χρησιμοποιήστε την ακόλουθη εντολή για να ελέγξετε την κατάσταση λειτουργίας του Κάφκα. Ως εξής:
kafka.υπηρεσία Φορτωμένο: φορτωμένο (/usr/lib/systemd/system/kafka.service; Ενεργοποιημένη; Προεπιλογή προμηθευτή: απενεργοποιημένη) Ενεργό: απέτυχε (Αποτέλεσμα: κωδικός εξόδου) από Τετ 2021-09-22 14:43:11 CST; 1 ώρα 43 λεπτά πριν Διαδικασία: 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (κωδικός=έξοδος, κατάσταση=1/ΑΠΟΤΥΧΙΑ) Κύριο PID: 7363 (κωδικός=έξοδος, κατάσταση=1/ΑΠΟΤΥΧΙΑ)
22 Σεπ 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,295] ΠΡΟΕΙΔΟΠΟΙΗΣΗ [Μεσίτης ReplicaManager=1] Διακοπή προβολής ρεπλίκων σε dir /tmp/kafka-logs ( kafka.server.ReplicaManager) 22 Σεπτεμβρίου 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,298] ΠΡΟΕΙΔΟΠΟΙΗΣΗ [GroupCoordinator 1]: Αποτυχία εγγραφής κενών μεταδεδομένων για την ομάδα KqBatchAna: Αυτό δεν είναι το σωστό συντονιστής. (kafka.co... upCoordinator) 22 Σεπ 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,303] ΠΛΗΡΟΦΟΡΙΕΣ [ReplicaFetcherManager στον μεσίτη 1] Καταργήθηκε η λήψη για κατατμήσεις HashSet(__consumer_offsets-22, __ consumer_offsets-30, ...-8, __consumer 22 Σεπ 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,304] ΠΛΗΡΟΦΟΡΙΕΣ [ReplicaAlterLogDirsManager στον μεσίτη 1] Αφαιρέθηκε το fetcher για κατατμήσεις HashSet(__consumer_ αντισταθμίσεις-22, __consumer_offsets... fsets-8, __con Sep 22 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,378] ΠΡΟΕΙΔΟΠΟΙΗΣΗ [ReplicaManager broker=1] Ο μεσίτης 1 σταμάτησε την ανάκτηση για κατατμήσεις __consumer_offsets-22,__ consumer_offsets-30,__consumer_... fsets-21,__con 22 Σεπ 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,379] ΠΡΟΕΙΔΟΠΟΙΗΣΗ Διακοπή προβολής αρχείων καταγραφής στο dir /tmp/kafka-logs (kafka.log.LogManager) 22 Σεπ 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,386] ΣΦΑΛΜΑ Τερματισμός λειτουργίας μεσίτη επειδή όλα τα αρχεία καταγραφής στο /tmp/kafka-logs απέτυχαν (kafka.log.LogManager) Sep 22 14:43:11 devops02 systemd[1]: kafka.service: η κύρια διεργασία εξέοδος, code=exited, status=1/FAILURE Sep 22 14:43:11 devops02 systemd[1]: Η μονάδα kafka.service εισήλθε σε κατάσταση αποτυχίας. Sep 22 14:43:11 devops02 systemd[1]: kafka.service απέτυχε.
Hint: Some lines were ellipsized, use -l to show in full.
Μεταβείτε στον κατάλογο καταγραφής Kafka /usr/local/kafka/logs για να δείτε τα αρχεία καταγραφής server.log, ως εξής:
[2021-09-22 14:43:11,286] ERROR Σφάλμα κατά την κύλιση του τμήματος καταγραφής για __consumer_offsets-8 στο dir /tmp/kafka-logs (kafka.server.LogDirFailureChannel)
java.io.FileNotFoundException: /tmp/kafka-logs/__consumer_offsets-8/00000000000000000000.index (No such file or directory) στο java.io.RandomAccessFile.open0(Εγγενής μέθοδος) στο java.io.RandomAccessFile.open(RandomAccessFile.java:316) στο java.io.RandomAccessFile. <init>(RandomAccessFile.java:243) στο kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:182) στο 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$προσαρμοσμένο(Log.scala:2037) στη Σκάλα. Option.foreach(Επιλογή.σκάλα: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) στο kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:1069) στο kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:1057) στο kafka.server.ReplicaManager.$anonfun$appendToLocalLog$6(ReplicaManager.scala:958) στο scala.collection.Iterator$$anon$9.next(Iterator.scala:575) στο scala.collection.mutable.Growable.addAll(Growable.scala:62) στο scala.collection.mutable.Growable.addAll$(Growable.scala:57) στο scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:692) στο scala.collection.immutable.Map$.from(Map.scala:643) στο scala.collection.immutable.Map$.from(Map.scala:173) στο scala.collection.MapOps.map(Map.scala:266) στο scala.collection.MapOps.map$(Map.scala:266) στο scala.collection.AbstractMap.map(Map.scala:372) στο kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:946) στο kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:616) στο kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala:325) στο kafka.coordinator.group.GroupCoordinator.$anonfun$onCompleteJoin$1(GroupCoordinator.scala:1206) στο kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) στο kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala:1178) στο kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala:43) στο kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala:72) στο kafka.coordinator.group.DelayedJoin.$anonfun$tryComplete$1(DelayedJoin.scala:38) στο kafka.coordinator.group.GroupCoordinator.$anonfun$tryCompleteJoin$1(GroupCoordinator.scala:1172) στο scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17) στο kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) στο kafka.coordinator.group.GroupCoordinator.tryCompleteJoin(GroupCoordinator.scala:1171) στο kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala:38) στο kafka.server.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala:110) στο kafka.server.DelayedOperationPurgatory.tryCompleteElseWatch(DelayedOperation.scala:234) στο kafka.coordinator.group.GroupCoordinator.prepareRebalance(GroupCoordinator.scala:1144) στο kafka.coordinator.group.GroupCoordinator.$anonfun$maybePrepareRebalance$1(GroupCoordinator.scala:1118) στο scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) στο kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) στο kafka.coordinator.group.GroupCoordinator.maybePrepareRebalance(GroupCoordinator.scala:1117) στο kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala:1156) στο kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala:498) στο scala.collection.immutable.List.map(List.scala:246) στο kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$2(GroupCoordinator.scala:470) στο scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) στο kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227) στο kafka.coordinator.group.GroupCoordinator.handleLeaveGroup(GroupCoordinator.scala:467) στο kafka.server.KafkaApis.handleLeaveGroupRequest(KafkaApis.scala:1659) στο kafka.server.KafkaApis.handle(KafkaApis.scala:180) στο kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74) στο java.lang.Thread.run(Thread.java:748) Αιτίες σφάλματος:Το Linux καθαρίζει τακτικά αρχεία στον κατάλογο /tmp, ο κατάλογος αρχείων Kafka αποθηκεύεται από προεπιλογή/tmp/kafka-logsμε αποτέλεσμα τον τακτικό καθαρισμό του, με αποτέλεσμα την ανώμαλη λειτουργία του προγράμματος.
Στο CentOS 7, υπάρχουν 3 υπηρεσίες συστήματος που σχετίζονται με την εκκαθάριση:
systemd-tmpfiles-setup.service :Δημιουργία πτητικών αρχείων και καταλόγων systemd-tmpfiles-setup-dev.service:Δημιουργία στατικών κόμβων συσκευών στο /dev systemd-tmpfiles-clean.service :Εκκαθάριση προσωρινών καταλόγων Υπάρχουν επίσης 3 σχετικά προφίλ, ως εξής:
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf Χρησιμοποιήστε την ακόλουθη εντολή για να προβάλετε τα αρχεία καταγραφής που σχετίζονται με τα αρχεία tmp:
tmp στο/usr/lib/tmpfiles.d/tmp.confΗ διαμόρφωση του αρχείου είναι όπως φαίνεται στην παρακάτω εικόνα:
# Αυτό το αρχείο είναι μέρος του systemd.
# # Το systemd είναι ελεύθερο λογισμικό. μπορείτε να το αναδιανείμετε ή/και να το τροποποιήσετε # σύμφωνα με τους όρους της Ελάσσονος Γενικής Άδειας Δημόσιας Χρήσης GNU όπως δημοσιεύεται από # το Ίδρυμα Ελεύθερου Λογισμικού· είτε την έκδοση 2.1 της Άδειας, είτε # (κατά την επιλογή σας) οποιαδήποτε μεταγενέστερη έκδοση.
# Δείτε το tmpfiles.d(5) για λεπτομέρειες
# Διαγράψτε τους καταλόγους tmp ξεχωριστά, για να διευκολύνετε την παράκαμψή τους v /tmp 1777 ρίζα ρίζας 10d v /var/tmp 1777 ρίζα ρίζας 30d
# Εξαιρέστε τα σημεία προσάρτησης χώρου ονομάτων που δημιουργήθηκαν με το PrivateTmp=yes x /tmp/systemd-ιδιωτικό-%b-* X /tmp/systemd-private-%b-*/tmp x /var/tmp/systemd-private-%b-* X /var/tmp/systemd-private-%b-*/tmp
Λύση 1
Τροποποιήστε το αρχείο ρυθμίσεων του Κάφκα /config/server.properties για να τροποποιήσετε τη διαμόρφωση του log.dirs, για παράδειγμα:
Λύση 2
Προσθέστε έναν κατάλογο εξαιρέσεων και επεξεργαστείτε το αρχείο: /usr/lib/tmpfiles.d/tmp.conf
(Τέλος)
|