Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
O ponto de verificação está atingindo o tempo limite
Se seu aplicativo não for otimizado ou provisionado adequadamente, os pontos de verificação podem falhar. Esta seção descreve os sintomas e as etapas de solução de problemas dessa condição.
Sintomas
Se os pontos de verificação falharem em seu aplicativo, o numberOfFailedCheckpoints
será maior que zero.
Os pontos de verificação podem falhar devido a falhas diretas, como erros do aplicativo, ou devido a falhas transitórias, como a falta de recursos do aplicativo. Verifique os logs e as métricas do seu aplicativo para ver os seguintes sintomas:
Erros no seu código.
Erros ao acessar os serviços dependentes do seu aplicativo.
Erros ao serializar dados. Se o serializador padrão não conseguir serializar os dados do aplicativo, o aplicativo falhará. Para obter informações sobre como usar um serializador personalizado em seu aplicativo, consulte Tipos de dados e serialização
na documentação do Apache Flink. Erros de falta de memória.
Picos ou aumentos constantes nas seguintes métricas:
heapMemoryUtilization
oldGenerationGCTime
oldGenerationGCCount
lastCheckpointSize
lastCheckpointDuration
Para obter mais informações sobre monitoramento de pontos de verificação, consulte Monitoramento de pontos de verificação na documentação
Causas e soluções
As mensagens de erro de log do aplicativo mostram a causa das falhas diretas. Falhas transitórias podem ter as seguintes causas:
Seu aplicativo tem KPU provisionamento insuficiente. Para obter informações sobre como aumentar o provisionamento de aplicativos, consulte Implemente o escalonamento de aplicativos.
O tamanho do estado do seu aplicativo é muito grande. Você pode monitorar o tamanho do estado do seu aplicativo usando a métrica
lastCheckpointSize
.Os dados de estado do seu aplicativo são distribuídos de forma desigual entre as chaves. Se seu aplicativo usa o operador
KeyBy
, verifique se os dados recebidos estão sendo divididos igualmente entre as chaves. Se a maioria dos dados estiver sendo atribuída a uma única chave, isso cria um gargalo que causa falhas.Seu aplicativo está enfrentando contrapressão na memória ou na coleta de resíduos. Monitore
heapMemoryUtilization
,oldGenerationGCTime
eoldGenerationGCCount
do seu aplicativo em busca de picos ou valores cada vez maiores.