이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10663|회답: 2

CentOS 7 하에서 카프카는 종종 솔루션을 중단합니다

[링크 복사]
게시됨 2021. 9. 22. 오후 5:31:38 | | | |
복습:

Kafka 윈도우 시스템은 일정 시간 실행 후 끊깁니다
https://www.itsvse.com/thread-9984-1-1.html

Windows Kafka 오류 로그가 정리되지 않음__consumer_offsets
https://www.itsvse.com/thread-9980-1-1.html

다음 명령어를 사용하여 Kafka의 실행 상태를 확인하세요. 다음과 같습니다:

카프카.서비스
   loaded: loaded (/usr/lib/systemd/system/kafka.service; 사용; 벤더 프리셋: 비활성화)
   활성화: 실패 (결과: 종료 코드) 2021-09-22 수요일 14:43:11 CST부터 시작됨; 1시간 43분 전
  Process: 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (code=exited, status=1/FAILURE)
주요 PID: 7363 (코드=종료, 상태=1/실패)

9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,295] WARN [ReplicaManager broker=1] dir /tmp/kafka-logs ( kafka.server.ReplicaManager)
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,298] WARN [GroupCoordinator 1]: 그룹 KqBatchAna의 빈 메타데이터 작성에 실패함: 이건 올바르지 않습니다 조정자. (kafka.co... up코디네이터)
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,303] 정보 [ReplicaFetcherManager의 브로커 1] 파티션 HashSet(__consumer_offsets-22, __)에 대한 fetcher를 제거했습니다 consumer_offsets-30, ...-8, __consumer
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,304] 정보 [ReplicaAlterLogDirsManager on broker 1] 파티션 HashSet(__consumer_ 페처 제거 오프셋-22, __consumer_offsets... FSETS-8, __con
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,378] WARN [ReplicaManager broker=1] 브로커 1이 파티션 __consumer_offsets-22,__에 대한 fetcher를 멈췄습니다. consumer_offsets-30,__consumer_... fsets-21,__con
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,379] WARN director /tmp/kafka-logs (kafka.log.LogManager)에서 로그 제공 중단
9월 22일 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,386] 오류 /tmp/kafka-logs의 모든 로그 디렉터리가 실패하여 브로커가 종료됩니다 (kafka.log.LogManager)
9월 22일 14:43:11 devops02 systemd[1]: kafka.service: main process exited, code=exited, status=1/FAILURE
9월 22일 14:43:11 devops02 systemd[1]: 유닛 kafka.service가 실패 상태에 들어갔습니다.
9월 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] __consumer_offsets-8 로그 세그먼트를 굴릴 때 /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$adapted(Log.scala:2037)
        스칼라에서. 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(기록 스칼라: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)
        at scala.collection.mutable.Growable.addAll(Growable.scala:62)
        at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
        scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:692)
        at 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)
        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)
        at kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala:1178)
        kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala:43)
        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)
        kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala:38)
        kafka.server.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala:110)
        at 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.maybePrepareRebalance(GroupCoordinator.scala:1117)
        at kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala:1156)
        at kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala:498)
        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)
        java.lang.Thread.run(Thread.java:748)

오류 원인:리눅스는 정기적으로 /tmp 디렉터리의 파일을 정리합니다, 카프카 파일 디렉터리는 기본적으로 저장됩니다/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

tmpfiles와 관련된 로그를 보려면 다음 명령어를 사용하세요:



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-private-%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


(끝)




이전의:CentOS 7은 ASP.NET Core 3.1과 함께 런타임 환경을 설치합니다
다음:nslookup 명령어가 잠시 도입되었습니다
게시됨 2021. 9. 22. 오후 7:51:17 |
다시 와서 배워。。。。。
 집주인| 게시됨 2022. 2. 7. 오후 2:31:46 |
정리 로그 명령어를 확인해 보세요:


2월 2일 18:18:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리 시작...
2월 2일 18:18:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리를 시작했습니다.
2월 3일 18:19:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리 시작...
2월 3일 18:19:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리를 시작했습니다.
2월 4일 18:20:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리 시작...
2월 4일 18:20:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리를 시작했습니다.
2월 5일 18:21:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리 시작...
2월 5일 18:21:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리를 시작했습니다.
2월 6일 18:22:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리 시작...
2월 6일 18:22:09 centos7-itsvse systemd[1]: 임시 디렉터리 정리를 시작했습니다.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com