Precauciones y problemas conocidos relacionados con actualizaciones de aplicaciones - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Precauciones y problemas conocidos relacionados con actualizaciones de aplicaciones

La confirmación de Kafka en los puntos de control falla repetidamente tras el reinicio de un agente

Existe un problema conocido de código abierto con Apache Flink en el conector Apache Kafka de la versión 1.15 de Flink causado por un error crítico de código abierto en el cliente de Kafka en Kafka Client 2.8.1. Para obtener más información, consulte Kafka Commit on checkpointing fails repeatedly after a broker restart y KafkaConsumer is unable to recover connection to group coordinator after commitOffsetAsync exception.

Para evitar este problema, se recomienda que utilice Apache Flink 1.18 o versiones posteriores en Amazon Managed Service para Apache Flink.

Limitaciones conocidas de compatibilidad entre estados

  • Si se utiliza la API de tabla, Apache Flink no garantiza la compatibilidad de estado entre las versiones de Flink. Para obtener más información, consulte Stateful Upgrades and Evolution en la documentación de Apache Flink.

  • Los estados de Flink 1.6 no son compatibles con Flink 1.18. La API rechazará su solicitud si intenta actualizar de la versión 1.6 a la versión 1.18 o versiones posteriores con el estado. Se puede actualizar a las versiones 1.8, 1.11, 1.13 y 1.15 y tomar una instantánea y, después, actualizar a la versión 1.18 y versiones posteriores. Para obtener más información, consulte Upgrading Applications and Flink Versions en la documentación de Apache Flink.

Problemas conocidos con el conector Flink Kinesis

  • Si se utiliza Flink 1.11 o una versión anterior y se utiliza el conector amazon-kinesis-connector-flinkcompatibilidad con el sistema de ventilación mejorada (EFO), debe tomar medidas adicionales para realizar una actualización completa a Flink 1.13 o posterior. Esto se debe al cambio en el nombre del paquete del conector. Para obtener más información, consulte amazon-kinesis-connector-flink.

    El conector amazon-kinesis-connector-flink de Flink 1.11 y versiones anteriores usa el paquete software.amazon.kinesis, mientras que el conector de Kinesis para Flink 1.13 y versiones posteriores usa org.apache.flink.streaming.connectors.kinesis. Utilice esta herramienta para respaldar la migración: amazon-kinesis-connector-flink-state-migrator.

  • Si se utiliza Flink 1.13 o una versión anterior con FlinkKinesisProducer y se la actualiza a Flink 1.15 o una versión posterior, para obtener una actualización completa se debe seguir usando FlinkKinesisProducer en Flink 1.15 o posterior, en lugar de utilizar la versión más reciente KinesisStreamsSink. Sin embargo, si ya tiene un conjunto uid personalizado en el receptor, se debe poder cambiarlo a KinesisStreamsSink porque FlinkKinesisProducer no mantiene el estado actual. Flink lo tratará como el mismo operador porque uid tiene una configuración personalizada.

Aplicaciones de Flink escritas en Scala

  • A partir de la versión 1.15, Apache Flink no incluye Scala en el tiempo de ejecución. Se debe incluir la versión de Scala que se desee usar y otras dependencias de Scala en la jar/zip de código cuando se actualice a Flink 1.15 o una versión posterior. Para obtener más información, consulte Amazon Managed Service para Apache Flink para Apache Flink versión 1.15.2

  • Si la aplicación usa Scala y la está actualizando de Flink 1.11 o anterior (Scala 2.11) a Flink 1.13 (Scala 2.12), asegúrese de que su código use Scala 2.12. De lo contrario, es posible que la aplicación Flink 1.13 no encuentre las clases de Scala 2.11 en el tiempo de ejecución de Flink 1.13.

Aspectos que se deben tener en cuenta al cambiar de aplicación Flink

  • Es posible cambiar las aplicaciones de Flink, pero se limita a los casos en que la aplicación se ejecutaba anteriormente con la versión anterior de Flink. Para una actualización de estado completo, Managed Service para Apache Flink requerirá el uso de una instantánea tomada con una versión coincidente o anterior para el cambio

  • Si se actualiza el tiempo de ejecución de Flink 1.13 o posterior a Flink 1.11 o anterior, y si la aplicación usa el backend de estado de HashMap, la aplicación fallará continuamente.