Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 10663|Resposta: 2

No CentOS 7, Kafka frequentemente desliga soluções

[Copiar link]
Publicado em 22/09/2021 17:31:38 | | | |
Revisar:

O sistema Kafka Windows trava após rodar por um período de tempo
https://www.itsvse.com/thread-9984-1-1.html

ERRO do Windows Kafka Falhou em limpar o log para __consumer_offsets
https://www.itsvse.com/thread-9980-1-1.html

Use o comando a seguir para verificar o status de funcionamento do Kafka. Como segue:

kafka.service
   Carregado: carregado (/usr/lib/systemd/system/kafka.service; Habilitado; Predefinição do fornecedor: desativada)
   Ativo: falhou (Resultado: código de saída) desde Qua 2021-09-22 14:43:11 CST; 1h 43 há
  Processo: 7363 ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties (code=exited, status=1/FAILURE)
PID principal: 7363 (código=saído, status=1/FALHA)

22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,295] AVISO [ReplicaManager broker=1] Parando de servir réplicas no diretor /tmp/kafka-logs ( kafka.server.ReplicaManager)
22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,298] AVISO [GroupCoordinator 1]: Falhou em escrever metadados vazios para o grupo KqBatchAna: Isso não é o correto Coordenador. (kafka.co... upCoordinator)
22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,303] INFO [ReplicaFetcherManager no broker 1] Removedo o buscador para partições 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 no broker 1] Removedo o buscador para partições HashSet(__consumer_ deslocamentos-22, __consumer_offsets... fsets-8, __con
22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,378] AVISO [ReplicaManager broker=1] O broker 1 parou a busca para partições __consumer_offsets-22,__ consumer_offsets-30.__consumer_... fsets-21,__con
22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,379] AVISO Parando de fornecer logs no dir/tmp/kafka-logs (kafka.log.LogManager)
22 de setembro 14:43:11 devops02 kafka-server-start.sh[7363]: [2021-09-22 14:43:11,386] ERRO Bloqueio corretor porque todos os diretores de log em /tmp/kafka-logs falharam (kafka.log.LogManager)
22 Set 14:43:11 devops02 systemd[1]: kafka.service: processo principal encerrado, código=encerrado, status=1/FALHA
22 de setembro 14:43:11 devops02 systemd[1]: Unidade kafka.service entrou em estado de falha.
22 de setembro 14:43:11 devops02 systemd[1]: kafka.service falhou.
Hint: Some lines were ellipsized, use -l to show in full.



Acesse o diretório de log da Kafka /usr/local/kafka/logs para visualizar os arquivos de log server.log, conforme segue:

[2021-09-22 14:43:11,286] ERRO Erro ao rolar o segmento de log para __consumer_offsets-8 no diretor /tmp/kafka-logs (kafka.server.LogDirFailureChannel)
java.io.FileNotFoundException: /tmp/kafka-logs/__consumer_offsets-8/00000000000000000000.index (No such file or directory)
        em java.io.RandomAccessFile.open0(Método Nativo)
        at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
        em java.io.RandomAccessFile. <init>(RandomAccessFile.java:243)
        em kafka.log.AbstractIndex.$anonfun$resize$1(AbstractIndex.scala:182)
        em kafka.log.AbstractIndex.resize(AbstractIndex.scala:175)
        em kafka.log.AbstractIndex.$anonfun$trimToValidSize$1(AbstractIndex.scala:241)
        em kafka.log.AbstractIndex.trimToValidSize(AbstractIndex.scala:241)
        em kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:507)
        em kafka.log.Log.$anonfun$roll$8(Log.scala:2037)
        at kafka.log.Log.$anonfun$roll$8$adapted(Log.scala:2037)
        Na Scala. Option.foreach(Option.scala:437)
        at kafka.log.Log.$anonfun$roll$2(Log.scala:2037)
        em kafka.log.Log.roll(Log.scala:2453)
        em kafka.log.Log.maybeRoll(Log.scala:1988)
        em kafka.log.Log.append(Log.scala:1263)
        em kafka.log.Log.appendAsLeader(Log.scala:1112)
        em kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:1069)
        em kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:1057)
        at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$6(ReplicaManager.scala:958)
        em scala.collection.Iterator$$anon$9.next(Iterator.scala:575)
        em scala.collection.mutable.Growable.addAll(Growable.scala:62)
        em scala.collection.mutable.Growable.addAll$(Growable.scala:57)
        em scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:692)
        em scala.collection.immutable.Map$.from(Map.scala:643)
        em scala.collection.immutable.Map$.from(Map.scala:173)
        em scala.collection.MapOps.map(Map.scala:266)
        em scala.collection.MapOps.map$(Map.scala:266)
        em scala.collection.AbstractMap.map(Map.scala:372)
        at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:946)
        em kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:616)
        em kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala:325)
        em kafka.coordinator.group.GroupCoordinator.$anonfun$onCompleteJoin$1(GroupCoordinator.scala:1206)
        em kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        em kafka.coordinator.group.GroupCoordinator.onCompleteJoin(GroupCoordinator.scala:1178)
        em kafka.coordinator.group.DelayedJoin.onComplete(DelayedJoin.scala:43)
        em kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala:72)
        em kafka.coordinator.group.DelayedJoin.$anonfun$tryComplete$1(DelayedJoin.scala:38)
        em kafka.coordinator.group.GroupCoordinator.$anonfun$tryCompleteJoin$1(GroupCoordinator.scala:1172)
        at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.scala:17)
        em kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        em kafka.coordinator.group.GroupCoordinator.tryCompleteJoin(GroupCoordinator.scala:1171)
        em kafka.coordinator.group.DelayedJoin.tryComplete(DelayedJoin.scala:38)
        em kafka.servidor.DelayedOperation.safeTryCompleteOrElse(DelayedOperation.scala:110)
        em kafka.server.DelayedOperationPurgatory.tryCompleteElseWatch(DelayedOperation.scala:234)
        em kafka.coordinator.group.GroupCoordinator.prepareRebalance(GroupCoordinator.scala:1144)
        em kafka.coordinator.group.GroupCoordinator.$anonfun$maybePrepareRebalance$1(GroupCoordinator.scala:1118)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
        em kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        em kafka.coordinator.group.GroupCoordinator.maybePrepareRebalance(GroupCoordinator.scala:1117)
        em kafka.coordinator.group.GroupCoordinator.removeMemberAndUpdateGroup(GroupCoordinator.scala:1156)
        em kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$3(GroupCoordinator.scala:498)
        em scala.collection.immutable.List.map(List.scala:246)
        em kafka.coordinator.group.GroupCoordinator.$anonfun$handleLeaveGroup$2(GroupCoordinator.scala:470)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
        em kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
        em 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)

Causas do erro:O Linux limpa regularmente arquivos no diretório /tmp, o diretório de arquivos Kafka é armazenado por padrão/tmp/kafka-logso que faz com que ele seja limpo regularmente, resultando em operação anormal do programa.

No CentOS 7, existem 3 serviços de sistema relacionados à limpeza:

systemd-tmpfiles-setup.service :Criar arquivos e diretórios voláteis
systemd-tmpfiles-setup-dev.service:Criar nós estáticos de dispositivo em /dev
systemd-tmpfiles-clean.service :Limpeza de Diretórios Temporários

Existem também 3 perfis relacionados, conforme segue:

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

Use o seguinte comando para visualizar os logs relacionados aos arquivos tmp:



Diretório TMP em/usr/lib/tmpfiles.d/tmp.confA configuração do arquivo é a mostrada na figura a seguir:

# Este arquivo faz parte do systemd.
#
# SystemD é software livre; Você pode redistribuí-lo e/ou modificá-lo
# sob os termos da Licença Pública Geral Menor GNU, conforme publicado por
# a Fundação de Software Livre; seja a versão 2.1 da Licença, ou
# (À sua escolha) Qualquer versão posterior.

# Veja tmpfiles.d(5) para detalhes

# Limpe os diretórios tmp separadamente, para facilitar a sobreposição
v /tmp 1777 raiz raiz 10d
v /var/tmp 1777 raiz raiz 30d

# Excluir pontos de montagem de namespace criados com PrivateTmp=sim
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp



Solução 1

Modificar o arquivo de configuração do Kafka /config/server.properties para modificar a configuração dos log.dirs, por exemplo:



Solução 2

Adicione um diretório de exclusão e edite o arquivo: /usr/lib/tmpfiles.d/tmp.conf


(Fim)




Anterior:O CentOS 7 instala o ambiente de execução com ASP.NET Core 3.1
Próximo:Comando nslookup brevemente introduzido
Publicado em 22/09/2021 19:51:17 |
Venha aprender de novo。。。。。
 Senhorio| Publicado em 07/02/2022 14:31:46 |
Confira o comando do log de limpeza:


02 fev 18:18:09 centos7-itsvse systemd[1]: Iniciando a limpeza dos diretórios temporários...
02 fev 18:18:09 centos7-itsvse systemd[1]: Iniciei a limpeza dos diretórios temporários.
03 fev 18:19:09 centos7-itsvse systemd[1]: Iniciando a limpeza dos diretórios temporários...
03 fev 18:19:09 centos7-itsvse systemd[1]: Iniciei a limpeza dos diretórios temporários.
04 de fevereiro 18:20:09 centos7-itsvse systemd[1]: Iniciando a limpeza de diretórios temporários...
04 de fevereiro 18:20:09 centos7-itsvse systemd[1]: Iniciei a limpeza dos diretórios temporários.
05 de fevereiro 18:21:09 centos7-itsvse systemd[1]: Iniciando a limpeza dos diretórios temporários...
05 fev 18:21:09 centos7-itsvse systemd[1]: Iniciada limpeza de diretórios temporários.
06 de fevereiro 18:22:09 centos7-itsvse systemd[1]: Iniciando a limpeza de diretórios temporários...
06 fev 18:22:09 centos7-itsvse systemd[1]: Iniciada a limpeza dos diretórios temporários.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com