Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.
Problemas con las aplicaciones
Esta sección contiene soluciones para las condiciones de error que puede encontrar en su aplicación Managed Service para Apache Flink.
Temas
La aplicación está atascada en un estado transitorio
Si la aplicación permanece en un estado transitorio (STARTING, UPDATING, STOPPING, o AUTOSCALING), puede detenerla mediante la acción StopApplication con el parámetro Force establecido en true. No puede forzar la detención de una aplicación en el estado DELETING. Como alternativa, si la aplicación está en el estado UPDATING o AUTOSCALING, puede revertirla a la versión anterior en ejecución. Cuando se revierte una aplicación, se cargan los datos de estado de la última instantánea correcta. Si la aplicación no tiene instantáneas, Managed Service para Apache Flink rechaza la solicitud de reversión. Para obtener más información sobre cómo revertir una aplicación, consulte la acción RollbackApplication.
nota
La detención forzosa de la aplicación puede provocar la pérdida o la duplicación de datos. Para evitar la pérdida de datos o el procesamiento duplicado de los datos durante los reinicios de la aplicación, se recomienda que tome instantáneas frecuentes de la aplicación.
Algunas causas para las aplicaciones atascadas incluyen las siguientes:
-
El estado de la aplicación es demasiado grande: tener un estado de aplicación demasiado grande o demasiado persistente puede provocar que la aplicación se bloquee durante un punto de comprobación o una operación de captura de pantalla. Compruebe el
lastCheckpointDurationde su aplicación y las métricaslastCheckpointSizepara valores que aumentan de forma constante o valores anormalmente altos. -
El código de la aplicación es demasiado grande: compruebe que el archivo JAR de la aplicación tenga un tamaño inferior a 512 MB. No se admiten archivos JAR de más de 512 MB.
-
Falla la creación de la instantánea de la aplicación: Managed Service para Apache Flink toma una instantánea de la aplicación durante una solicitud de
UpdateApplicationoStopApplication. Luego, el servicio utiliza este estado de instantánea y restaura la aplicación con la configuración de la aplicación actualizada para proporcionar una semántica de procesamiento exactamente una vez. Si falla la creación automática de instantáneas, consulte Fallo en la creación de la instantánea. -
Falla la restauración a partir de una instantánea: si elimina o cambia un operador de una actualización de la aplicación e intenta realizar la restauración a partir de una instantánea, la restauración fallará de forma predeterminada si la instantánea contiene datos de estado del operador que falta. Además, la aplicación quedará bloqueada en el estado
STOPPEDoUPDATING. Para cambiar este comportamiento y permitir que la restauración se realice correctamente, cambie el parámetro allowNonRestoredState de flinkRunConfiguration de la aplicación atrue. Esto permitirá que la operación de reanudación omita los datos de estado que no se pueden asignar al nuevo programa. -
La inicialización de la aplicación está tardando más tiempo: Managed Service para Apache Flink utiliza un tiempo de espera interno de 5 minutos (configuración predeterminada) mientras se espera a que se inicie un trabajo de Flink. Si su trabajo no se inicia dentro de este tiempo de espera, verá un registro de CloudWatch como se muestra a continuación:
Flink job did not start within a total timeout of 5 minutes for application: %s under account: %sSi aparece el error anterior, significa que las operaciones definidas en el método del trabajo de Flink
mainestán tardando más de 5 minutos, lo que provoca que se agote el tiempo de espera para la creación del trabajo de Flink en el extremo de Managed Service para Apache Flink. Le sugerimos que compruebe los registros del JobManager de Flink y el código de su aplicación para comprobar si se espera este retraso en el métodomain. De lo contrario, debe tomar medidas para solucionar el problema de modo que se complete en menos de 5 minutos.
Se puede comprobar el estado de su aplicación mediante ListApplications o las acciones de DescribeApplication.
Fallo en la creación de la instantánea
El servicio Managed Service para Apache Flink no puede tomar una instantánea en las siguientes circunstancias:
La aplicación ha superado el límite de instantáneas. El límite de instantáneas es 1000. Para obtener más información, consulte Administración de copias de seguridad de aplicaciones con instantáneas.
La aplicación no tiene permisos para acceder a su fuente o receptor.
El código de la aplicación no funciona correctamente.
La aplicación tiene otros problemas de configuración.
Si se produce una excepción al tomar una instantánea durante una actualización de la aplicación o al detener la aplicación, defina la propiedad SnapshotsEnabled de la aplicación ApplicationSnapshotConfiguration a false y vuelva a intentar la solicitud.
Las instantáneas pueden fallar si los operadores de la aplicación no están debidamente aprovisionados. Para obtener información sobre cómo ajustar el rendimiento de los operadores, consulte Escalado de operadores.
Una vez que la aplicación vuelva a su estado correcto, se recomienda establecer la propiedad de SnapshotsEnabled de la aplicación en true.
No puedo obtener acceso a los recursos de una VPC
Si la aplicación utiliza una VPC que se ejecuta en Amazon VPC, haga lo siguiente para comprobar que la aplicación tenga acceso a sus recursos:
-
Compruebe los registros de CloudWatch para ver si aparece el siguiente error. Este error indica que la aplicación no puede acceder a los recursos de la VPC:
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.Si ve este error, compruebe que las tablas de enrutamiento estén configuradas correctamente y que los conectores tengan la configuración de conexión correcta.
Para obtener información acerca de la configuración y el análisis de los registros de CloudWatch, consulte Registro y supervisión en Amazon Managed Service para Apache Flink.
Los datos se pierden al escribir en un bucket de Amazon S3
Es posible que se produzcan algunas pérdidas de datos al escribir la salida en un bucket de Amazon S3 con Apache Flink versión 1.6.2. Se recomiendautilizar la última versión compatible de Apache Flink cuando utilice Amazon S3 para la salida directa. Para escribir en un bucket de Amazon S3 mediante Apache Flink 1.6.2, se recomienda que utilice Firehose. Para obtener más información sobre el uso de Firehose con Managed Service para Apache Flink, consulte Receptor de Firehose.
La aplicación está en estado EJECUCIÓN pero no está procesando datos
Se puede comprobar el estado de su aplicación mediante ListApplications o las acciones de DescribeApplication. Si la aplicación introduce el estado RUNNING pero no escribe datos en el receptor, puede solucionar el problema añadiendo un flujo de registro de Amazon CloudWatch a la aplicación. Para obtener más información, consulte Trabajo con las opciones de registro de CloudWatch de la aplicación. El flujo de registro contiene mensajes que pueden ayudarlo a solucionar cualquier problema con la aplicación.
Error de instantánea, actualización de la aplicación o detención de la aplicación: InvalidApplicationConfigurationException
Se puede producirse un error similar al siguiente durante una operación de instantánea o durante una operación que crea una instantánea, como la actualización o la detención de una aplicación:
An error occurred (InvalidApplicationConfigurationException) when calling the UpdateApplication operation: Failed to take snapshot for the application xxxx at this moment. The application is currently experiencing downtime. Please check the application's CloudWatch metrics or CloudWatch logs for any possible errors and retry the request. You can also retry the request after disabling the snapshots in the Managed Service for Apache Flink console or by updating the ApplicationSnapshotConfiguration through the AWS SDK
Este error se produce cuando la aplicación no puede crear una instantánea.
Si encuentra este error durante una operación de captura de pantalla o una operación que crea una instantánea, haga lo siguiente:
-
Deshabilite las instantáneas para su aplicación. Se puede hacerlo en la consola de Managed Service para Apache Flink o mediante el parámetro
SnapshotsEnabledUpdatede la acción UpdateApplication. -
Investigue por qué no se pueden crear instantáneas. Para obtener más información, consulte La aplicación está atascada en un estado transitorio.
-
Vuelva a activar las instantáneas cuando la aplicación vuelva a estar en buen estado.
java.nio.file.NoSuchFileException: /usr/local/openjdk-8/lib/security/cacerts
La ubicación del almacén de confianza SSL se actualizó en una implementación anterior. Utilice los siguientes valores para el parámetro ssl.truststore.location en su lugar:
/usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts