Precauções e problemas conhecidos com atualizações de aplicativos - 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á.

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

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 a E nhanced-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 um uid conjunto personalizado no coletor, poderá alternar para FlinkKinesisProducer ele KinesisStreamsSink porque não mantém o estado. O Flink o tratará como o mesmo operador porque um personalizado foi uid 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.