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á.
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 corretor
Há um problema conhecido do Apache Flink de código aberto com o conector 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 on checkpoint falha repetidamente após a reinicialização do broker
Para evitar esse problema, recomendamos que você use o Apache Flink 1.18 ou posterior no Amazon Managed Service para Apache Flink.
Limitações conhecidas da compatibilidade de estados
-
Se você estiver usando a TabelaAPI, o Apache Flink não garante a compatibilidade de estado entre as versões do Flink. Para obter mais informações, consulte Stateful Upgrades and Evolution na documentação
do Apache Flink. -
Os estados do Flink 1.6 não são compatíveis com o Flink 1.18. O API rejeita sua solicitação se você tentar atualizar da versão 1.6 para a versão 1.18 e posterior com o estado. Você pode atualizar para 1.8, 1.11, 1.13 e 1.15 e tirar um instantâneo e, em seguida, atualizar para 1.18 e versões posteriores. Para obter mais informações, consulte Atualizando 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
amazon-kinesis-connector-flink
conector para suporte Enhanced-fan-out (EFO), deverá tomar medidas adicionais para uma atualização contínua 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
amazon-kinesis-connector-flink
conector para Flink 1.11 e versões anteriores usa a embalagemsoftware.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 apoiar sua migração: amazon-kinesis-connector-flink-state-migrator. -
Se você estiver usando o Flink 1.13 ou anterior
FlinkKinesisProducer
e atualizando para o Flink 1.15 ou posterior, para uma atualização com estado, você deve continuar usando o Flink 1.15 ou posterior,FlinkKinesisProducer
em vez do mais novo.KinesisStreamsSink
No entanto, se você já tiver umuid
conjunto personalizado no coletor, poderá alternar paraFlinkKinesisProducer
eleKinesisStreamsSink
porque não mantém o estado. O Flink o tratará como o mesmo operador porque um personalizado foiuid
definido.
Aplicativos Flink escritos em Scala
-
A partir do Flink 1.15, o Apache Flink não inclui o Scala no tempo de execução. 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 for Apache Flink versão 1.15.2.
-
Se seu aplicativo usa o Scala e você o está atualizando do Flink 1.11 ou anterior (Scala 2.11) 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 em encontrar classes Scala 2.11 no tempo de execução do Flink 1.13.
Coisas a considerar ao fazer o downgrade do aplicativo Flink
-
O downgrade dos aplicativos Flink é possível, mas 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 tirado com uma versão correspondente ou anterior para o downgrade.
-
Se você estiver atualizando seu tempo de execução do Flink 1.13 ou posterior para o Flink 1.11 ou anterior e se seu aplicativo usar o back-end de HashMap estado, seu aplicativo falhará continuamente.