Problemas de aplicação - Managed Service for Apache Flink

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á.

Problemas de aplicação

Esta seção contém soluções para condições de erro que você pode encontrar com seu aplicativo Managed Service for Apache Flink.

O aplicativo está preso em um status transitório

Se seu aplicativo permanecer em um status transitório (STARTING,UPDATING,STOPPING, ouAUTOSCALING), você poderá interrompê-lo usando a StopApplicationação com o Force parâmetro definido como. true Você não pode forçar a interrupção de um aplicativo no status DELETING. Como alternativa, se o aplicativo estiver no status UPDATING ou AUTOSCALING, você poderá revertê-lo para a versão anterior em execução. Quando você reverte um aplicativo, ele carrega dados do estado do último snapshot bem-sucedido. Se o aplicativo não tiver snapshots, o Managed Service for Apache Flink rejeitará a solicitação de reversão. Para obter mais informações sobre como reverter um aplicativo, consulte RollbackApplicationação.

nota

A interrupção forçada do aplicativo pode levar à perda ou duplicação de dados. Para evitar a perda de dados ou o processamento duplicado de dados durante a reinicialização do aplicativo, recomendamos que você tire instantâneos frequentes do seu aplicativo.

As causas para aplicativos travados incluem o seguinte:

  • O estado do aplicativo é muito grande: ter um estado de aplicativo muito grande ou muito persistente pode fazer com que o aplicativo fique preso durante uma operação de ponto de verificação ou instantâneo. Verifique as métricas lastCheckpointDuration e lastCheckpointSize do seu aplicativo para valores crescentes constantes ou valores anormalmente altos.

  • O código do aplicativo é muito grande: verifique se o arquivo JAR do aplicativo tem menos de 512 MB. Arquivos JAR maiores que 512 MB não são suportados.

  • Falha na criação do instantâneo do aplicativo: o Managed Service for Apache Flink tira um instantâneo do aplicativo durante uma solicitação de UpdateApplication ou StopApplication. Em seguida, o serviço usa esse estado de instantâneo e restaura o aplicativo usando a configuração atualizada do aplicativo para fornecer uma semântica de processamento exatamente uma vez. Se a criação automática do instantâneo falhar, consulte Falha na criação do instantâneo a seguir.

  • Falha na restauração a partir de um instantâneo: se você remover ou alterar um operador em uma atualização do aplicativo e tentar restaurar a partir de um instantâneo, a restauração falhará por padrão se o instantâneo contiver dados de estado do operador ausente. Além disso, o aplicativo ficará preso no status STOPPED ou UPDATING. Para alterar esse comportamento e permitir que a restauração seja bem-sucedida, altere o AllowNonRestoredStateparâmetro do aplicativo FlinkRunConfigurationparatrue. Isso permitirá que a operação de retomada ignore dados de estado que não possam ser mapeados para o novo programa.

  • A inicialização do aplicativo está demorando mais: o Managed Service for Apache Flink usa um tempo limite interno de 5 minutos (configuração suave) enquanto aguarda o início de uma tarefa do Flink. Se seu trabalho não começar dentro desse tempo limite, você verá um CloudWatch registro da seguinte forma:

    Flink job did not start within a total timeout of 5 minutes for application: %s under account: %s

    Se você encontrar o erro acima, isso significa que suas operações definidas no método main da tarefa do Flink estão demorando mais de 5 minutos, fazendo com que a criação da tarefa do Flink expire no final do Managed Service for Apache Flink. Sugerimos que você verifique os JobManagerregistros do Flink, bem como o código do aplicativo, para ver se esse atraso no main método é esperado. Caso contrário, você precisa adotar medidas para resolver o problema para que ele seja concluído em menos de 5 minutos.

Você pode verificar o status do seu aplicativo usando as ações ListApplications ou DescribeApplication.

Falha na criação do instantâneo

O serviço Managed Service for Apache Flink não pode tirar um instantâneo nas seguintes circunstâncias:

  • O aplicativo excedeu o limite de instantâneos. O limite para instantâneos é de 1.000. Para ter mais informações, consulte Snapshots.

  • O aplicativo não tem permissões para acessar sua fonte ou coletor.

  • O código do aplicativo não está funcionando corretamente.

  • O aplicativo está enfrentando outros problemas de configuração.

Se você receber uma exceção ao tirar um instantâneo durante uma atualização do aplicativo ou ao interromper o aplicativo, defina a propriedade SnapshotsEnabled de ApplicationSnapshotConfiguration do seu aplicativo como false e repita a solicitação.

Os instantâneos podem falhar se os operadores do seu aplicativo não forem provisionados adequadamente. Para obter informações sobre como ajustar o desempenho do operador, consulte Escalonamento operador.

Depois que o aplicativo retornar ao estado íntegro, recomendamos que você defina a propriedade SnapshotsEnabled do aplicativo como true.

Não é possível acessar recursos em uma VPC

Se seu aplicativo usa uma VPC em execução na Amazon VPC, faça o seguinte para verificar se seu aplicativo tem acesso aos recursos:

  • Verifique se há o seguinte erro em seus CloudWatch registros. Esse erro indica que seu aplicativo não pode acessar recursos em sua VPC:

    org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

    Se você ver esse erro, verifique se suas tabelas de rotas estão configuradas corretamente e se seus conectores têm as configurações de conexão corretas.

    Para obter informações sobre como configurar e analisar CloudWatch registros, consulteLogging e monitoramento.

Os dados são perdidos ao gravar em um bucket do Amazon S3

Pode ocorrer alguma perda de dados ao gravar a saída em um bucket do Amazon S3 usando o Apache Flink versão 1.6.2. Recomendamos usar a versão mais recente compatível do Apache Flink ao usar o Amazon S3 para saída direta. Para gravar em um bucket do Amazon S3 usando o Apache Flink 1.6.2, recomendamos o uso do Firehose. Para obter mais informações sobre o uso do Firehose com o Managed Service para Apache Flink, consulte. Pia Firehose

O aplicativo está no status RUNNING, mas não está processando dados

Você pode verificar o status do seu aplicativo usando as ações ListApplications ou DescribeApplication. Se seu aplicativo inserir o RUNNING status, mas não estiver gravando dados no coletor, você poderá solucionar o problema adicionando um stream de CloudWatch log da Amazon ao seu aplicativo. Para ter mais informações, consulte Trabalhando com opções de CloudWatch registro de aplicativos. O fluxo de logs contém mensagens que podem ajudar a solucionar problemas do aplicativo.

Erro de captura instantânea, atualização do aplicativo ou parada do aplicativo: InvalidApplicationConfigurationException

Um erro semelhante ao seguinte pode ocorrer durante uma operação de instantâneo ou durante uma operação que cria um instantâneo, como atualizar ou interromper um aplicativo:

An error occurred (InvalidApplicationConfigurationException) when calling the UpdateApplication operation: Failed to take snapshot for the application xxxx at this moment. The application is currently experiencing downtime. Please check the application's CloudWatch metrics or CloudWatch logs for any possible errors and retry the request. You can also retry the request after disabling the snapshots in the Managed Service for Apache Flink console or by updating the ApplicationSnapshotConfiguration through the AWS SDK

Esse erro ocorre quando o aplicativo não consegue criar um snapshot.

Se você encontrar esse erro durante uma operação de instantâneo ou uma operação que cria um instantâneo, faça o seguinte:

  • Desative os instantâneos do seu aplicativo. Você pode fazer isso no console do Managed Service for Apache Flink ou usando o SnapshotsEnabledUpdate parâmetro da UpdateApplicationação.

  • Investigue por que os instantâneos não podem ser criados. Para ter mais informações, consulte O aplicativo está preso em um status transitório.

  • Reative os instantâneos quando o aplicativo retornar a um estado íntegro.

java.nio.file. NoSuchFileException: /usr/local/openjdk-8/lib/security/cacerts

A localização do armazenamento confiável SSL foi atualizada em uma implantação anterior. Use o seguinte valor para o parâmetro ssl.truststore.location:

/usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts