Fallo en el punto de control de la aplicación Apache Beam - Managed Service para Apache Flink

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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Fallo en el punto de control de la aplicación Apache Beam

Si su aplicación Beam está shutdownSourcesAfterIdleMsconfigurada con un valor de 0 ms, es posible que los puntos de control no se activen porque las tareas están en estado «FINALIZADO». En esta sección se describen los síntomas y la resolución de esta condición.

Síntoma

Vaya a los CloudWatch registros de aplicaciones de su servicio gestionado para Apache Flink y compruebe si se ha registrado el siguiente mensaje de registro. El siguiente mensaje de registro indica que el punto de control no se pudo activar porque algunas tareas estaban terminadas.

{ "locationInformation": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator.onTriggerFailure(CheckpointCoordinator.java:888)", "logger": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator", "message": "Failed to trigger checkpoint for job your job ID since some tasks of job your job ID has been finished, abort the checkpoint Failure reason: Not all required tasks are currently running.", "threadName": "Checkpoint Timer", "applicationARN": your application ARN, "applicationVersionId": "5", "messageSchemaVersion": "1", "messageType": "INFO" }

También se puede encontrar en el panel de control de Flink, donde algunas tareas han pasado al estado “FINALIZADO” y ya no es posible establecer puntos de control.

Tareas en estado “FINALIZADO”

Causa

shutdownSourcesAfterIdleMs es una variable de configuración de Beam que cierra las fuentes que han estado inactivas durante el tiempo configurado de milisegundos. Una vez que se ha cerrado una fuente, establecer puntos de control ya no es posible. Esto podría provocar una falla en el punto de control.

Una de las causas por las que las tareas entran en el estado «FINALIZADAS» shutdownSourcesAfter IdleMs es cuando están configuradas en 0 ms, lo que significa que las tareas inactivas se cerrarán inmediatamente.

Solución

Para evitar que las tareas pasen inmediatamente al estado «FINALIZADAS», establézcalas en shutdownSourcesAfter IdleMs LONG.MAX_VALUE. Puede hacer esto de dos formas:

  • Opción 1: Si la configuración de su haz está establecida en la página de configuración de la aplicación Managed Service for Apache Flink, puede añadir un nuevo par clave-valor para configurar Ms de la siguiente manera: shutdpwnSourcesAfteridle

    Establézcalo en shutdownSourcesAfter IdleMs Long.max_value
  • Opción 2: si la configuración de la viga está establecida en el archivo JAR, puede configurarla de la siguiente manera: shutdownSourcesAfter IdleMs

    FlinkPipelineOptions options = PipelineOptionsFactory.create().as(FlinkPipelineOptions.class); // Initialize Beam Options object options.setShutdownSourcesAfterIdleMs(Long.MAX_VALUE); // set shutdownSourcesAfterIdleMs to Long.MAX_VALUE options.setRunner(FlinkRunner.class); Pipeline p = Pipeline.create(options); // attach specified options to Beam pipeline