Précautions et problèmes connus liés aux mises à niveau des applications - Service géré pour Apache Flink

Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Précautions et problèmes connus liés aux mises à niveau des applications

Kafka Commit lors du point de contrôle échoue à plusieurs reprises après le redémarrage d'un broker

Il existe un problème connu d'Apache Flink open source avec le connecteur Apache Kafka dans la version 1.15 de Flink, causé par un bogue critique du client Kafka open source dans le client Kafka 2.8.1. Pour plus d'informations, consultez Kafka Commit lorsque le point de contrôle échoue à plusieurs reprises après le redémarrage d'un broker et KafkaConsumer ne parvient pas à rétablir la connexion au coordinateur de groupe après commitOffsetAsync une exception.

Pour éviter ce problème, nous vous recommandons d'utiliser Apache Flink 1.18 ou version ultérieure dans Amazon Managed Service pour Apache Flink.

Limites connues de la compatibilité des états

  • Si vous utilisez la tableAPI, Apache Flink ne garantit pas la compatibilité des états entre les versions de Flink. Pour plus d'informations, consultez Stateful Upgrades and Evolution dans la documentation d'Apache Flink.

  • Les états de Flink 1.6 ne sont pas compatibles avec Flink 1.18. Le API rejette votre demande si vous essayez de passer de la version 1.6 à la version 1.18 ou ultérieure avec state. Vous pouvez effectuer une mise à niveau vers les versions 1.8, 1.11, 1.13 et 1.15 et prendre un instantané, puis passer à la version 1.18 ou ultérieure. Pour plus d'informations, consultez la section Mise à niveau des applications et des versions de Flink dans la documentation d'Apache Flink.

Problèmes connus liés au connecteur Flink Kinesis

  • Si vous utilisez Flink 1.11 ou une version antérieure et que vous utilisez le amazon-kinesis-connector-flink connecteur pour le support Enhanced-fan-out (EFO), vous devez prendre des mesures supplémentaires pour effectuer une mise à niveau dynamique vers Flink 1.13 ou version ultérieure. Cela est dû à la modification du nom du package du connecteur. Pour plus d'informations, consultez amazon-kinesis-connector-flink.

    Le amazon-kinesis-connector-flink connecteur pour Flink 1.11 et versions antérieures utilise le packagesoftware.amazon.kinesis, tandis que le connecteur Kinesis pour Flink 1.13 et versions ultérieures l'utilise. org.apache.flink.streaming.connectors.kinesis Utilisez cet outil pour faciliter votre migration : amazon-kinesis-connector-flink-state-migrator.

  • Si vous utilisez Flink 1.13 ou une version antérieure FlinkKinesisProducer et que vous effectuez une mise à niveau vers Flink 1.15 ou version ultérieure, pour une mise à niveau dynamique, vous devez continuer à utiliser Flink 1.15 ou version ultérieure, FlinkKinesisProducer au lieu de la version plus récente. KinesisStreamsSink Toutefois, si vous avez déjà un uid ensemble personnalisé sur votre évier, vous devriez pouvoir passer à un kit KinesisStreamsSink car il FlinkKinesisProducer ne conserve pas l'état. Flink le traitera comme le même opérateur car une personnalisation uid est définie.

Applications Flink écrites en Scala

  • Depuis Flink 1.15, Apache Flink n'inclut pas Scala dans le runtime. Vous devez inclure la version de Scala que vous souhaitez utiliser et les autres dépendances de Scala dans votre code JAR /zip lors de la mise à niveau vers Flink 1.15 ou version ultérieure. Pour plus d'informations, consultez la version 1.15.2 d'Amazon Managed Service pour Apache Flink pour Apache Flink.

  • Si votre application utilise Scala et que vous la mettez à niveau de Flink 1.11 ou version antérieure (Scala 2.11) vers Flink 1.13 (Scala 2.12), assurez-vous que votre code utilise Scala 2.12. Sinon, votre application Flink 1.13 risque de ne pas trouver les classes Scala 2.11 dans le runtime Flink 1.13.

Points à prendre en compte lors de la rétrogradation de l'application Flink

  • La rétrogradation des applications Flink est possible, mais limitée aux cas où l'application était précédemment exécutée avec l'ancienne version de Flink. Pour une mise à niveau dynamique, le service géré pour Apache Flink nécessitera l'utilisation d'un instantané pris avec une version correspondante ou antérieure pour la rétrogradation.

  • Si vous mettez à jour votre environnement d'exécution de Flink 1.13 ou version ultérieure vers Flink 1.11 ou version antérieure, et si votre application utilise le backend d' HashMap état, votre application échouera continuellement.