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
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-flinkde Flink 1.11 y versiones anteriores usa el paquetesoftware.amazon.kinesis, mientras que el conector de Kinesis para Flink 1.13 y versiones posteriores usaorg.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
FlinkKinesisProducery se la actualiza a Flink 1.15 o una versión posterior, para obtener una actualización completa se debe seguir usandoFlinkKinesisProduceren Flink 1.15 o posterior, en lugar de utilizar la versión más recienteKinesisStreamsSink. Sin embargo, si ya tiene un conjuntouidpersonalizado en el receptor, se debe poder cambiarlo aKinesisStreamsSinkporqueFlinkKinesisProducerno mantiene el estado actual. Flink lo tratará como el mismo operador porqueuidtiene 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.