View a markdown version of this page

Fallo en el punto de control de la aplicación Apache Beam - Managed Service 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 tu aplicación Beam está configurada con el apagado SourcesAfterIdleMs establecido en 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

shutdown SourcesAfterIdleMs es una variable de configuración de Beam que apaga 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» es cuando el apagado SourcesAfterIdleMs está establecido en 0 ms, lo que significa que las tareas inactivas se apagarán inmediatamente.

Solución

Para evitar que las tareas pasen inmediatamente al estado «FINALIZADAS», establece el estado de apagado en SourcesAfterIdleMs Long.MAX _VALUE. Se 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 SourcesAfteridleMs shutdpwn de la siguiente manera:

    Establezca el valor de apagado en _VALUE SourcesAfterIdleMs Long.MAX
  • Opción 2: Si la configuración del haz está establecida en el archivo JAR, puedes configurar el apagado de la SourcesAfterIdleMs siguiente manera:

    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