Precauções e problemas conhecidos com atualizações de aplicativos - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) 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á.

Precauções e problemas conhecidos com atualizações de aplicativos

O Kafka Commit no ponto de verificação falha repetidamente após a reinicialização do agente

Há um problema conhecido do Apache Flink de código aberto com o conector do Apache Kafka no Flink versão 1.15 causado por um bug crítico do Kafka Client de código aberto no Kafka Client 2.8.1. Para obter mais informações, consulte Kafka Commit no ponto de verificação falha repetidamente após a reinicialização do agente e KafkaConsumer não consegue recuperar a conexão com o coordenador do grupo após a exceção commitOffsetAsync.

Para evitar esse problema, recomendamos usar o Apache Flink 1.18 ou posterior no Amazon Managed Service for Apache Flink.

Limitações conhecidas da compatibilidade de estados

  • Se estiver usando a API Table, o Apache Flink não garante a compatibilidade de estados entre as versões do Flink. Para obter mais informações, consulte Atualizações e evolução com estado na Documentação do Apache Flink.

  • Os estados do Flink 1.6 são incompatíveis com o Flink 1.18. A API rejeita sua solicitação se você tentar atualizar da versão 1.6 para a versão 1.18 e posterior com estado. Você pode atualizar para 1.8, 1.11, 1.13 e 1.15, fazer um snapshot e, em seguida, atualizar para 1.18 e versões posteriores. Para obter mais informações, consulte Atualizar aplicativos e versões do Flink na documentação do Apache Flink.

Problemas conhecidos com o Flink Kinesis Connector

  • Se você estiver usando o Flink 1.11 ou anterior e usando o conector amazon-kinesis-connector-flink para suporte ao Enhanced-Fan-Out (EFO), você deve tomar medidas adicionais para uma atualização com estado preservado para o Flink 1.13 ou posterior. Isso ocorre devido à alteração no nome do pacote do conector. Para obter mais informações, consulte amazon-kinesis-connector-flink.

    O conector amazon-kinesis-connector-flink para Flink 1.11 e versões anteriores usa o empacotamento software.amazon.kinesis, enquanto o conector Kinesis para Flink 1.13 e versões posteriores usa org.apache.flink.streaming.connectors.kinesis. Use essa ferramenta para dar suporte à sua migração: amazon-kinesis-connector-flink-state-migrator.

  • Se você estiver usando o Flink 1.13 ou anterior com FlinkKinesisProducer e atualizando para o Flink 1.15 ou posterior, você deve continuar a usar o FlinkKinesisProducer no Flink 1.15 ou posterior em vez do KinesisStreamsSink mais recente para conseguir fazer uma atualização com estado. No entanto, se você já tiver um conjunto uid personalizado em sua coletor, poderá alternar para KinesisStreamsSink porque o FlinkKinesisProducer não mantém o estado. O Flink o tratará como o mesmo operador porque um uid personalizado foi definido.

Aplicativos Flink criados no Scala

  • A partir do Flink 1.15, o Apache Flink não inclui o Scala no runtime. Você deve incluir a versão do Scala que deseja usar e outras dependências do Scala em seu código JAR/zip ao atualizar para o Flink 1.15 ou posterior. Para obter mais informações, consulte Amazon Managed Service for Apache Flink com a versão 1.15.2 do Apache Flink.

  • Se seu aplicativo usa o Scala e o Flink 1.11 ou anterior (Scala 2.11) está sendo atualizado para o Flink 1.13 (Scala 2.12), certifique-se de que seu código use o Scala 2.12. Caso contrário, seu aplicativo Flink 1.13 pode falhar ao encontrar classes Scala 2.11 no runtime do Flink 1.13.

Considerações ao reverter o aplicativo Flink

  • É possível fazer o downgrade dos aplicativos Flink, mas isso fica limitado aos casos em que o aplicativo estava sendo executado anteriormente com a versão mais antiga do Flink. Para uma atualização com estado, o Managed Service para Apache Flink exigirá o uso de um snapshot obtido de uma versão correspondente ou anterior para o downgrade.

  • Se você estiver atualizando seu runtime do Flink 1.13 ou posterior para o Flink 1.11 ou anterior e se seu aplicativo usar o backend com estado do HashMap, seu aplicativo falhará continuamente.