Superivsión de trabajos - Amazon EMR

Superivsión de trabajos

Puede usar Eventos de Amazon CloudWatch para llevar un seguimiento de los trabajos que se ejecutan en un clúster virtual de Amazon EMR en EKS. Puede usar los eventos para hacer un seguimiento de la actividad y el estado de los trabajos que ejecute en un clúster virtual. En los temas siguientes, se muestran formas de configurar la supervisión de forma eficaz para mantener el estado de los recursos.

Supervisión de trabajos con Eventos de Amazon CloudWatch

Amazon EMR en EKS emite eventos cuando el estado de una ejecución de un trabajo cambia. Cada evento proporciona información, como la fecha y hora en que ocurrió el evento, junto con más detalles, como el ID del clúster virtual y el ID de la ejecución de trabajo que se vio afectada.

Puede usar los eventos para hacer un seguimiento de la actividad y el estado de los trabajos que ejecute en un clúster virtual. También puede usar Eventos de Amazon CloudWatch para definir una acción que se debe llevar a cabo cuando la ejecución de un trabajo genera un evento que coincide con un patrón que especifique. Los eventos son útiles para supervisar un suceso específico durante el ciclo de vida de una ejecución de trabajo. Por ejemplo, puede supervisar cuándo el estado de una ejecución de un trabajo cambia de submitted a running. Para obtener más información acerca de Eventos de CloudWatch, consulte la Guía del usuario de Amazon EventBridge.

En la siguiente tabla, se muestran eventos de Amazon EMR en EKS, junto con el estado o cambio de estado que indica el evento, la gravedad del evento y los mensajes de eventos. Cada evento se representa como un objeto JSON que se envía automáticamente a un flujo de eventos. El objeto JSON incluye detalles adicionales sobre el evento. El objeto JSON es especialmente importante cuando se configuran reglas para el procesamiento de eventos mediante Eventos de CloudWatch porque las reglas buscan asignar patrones en el objeto JSON. Para obtener más información, consulte los patrones de eventos de Amazon EventBridge y Eventos de Amazon EMR en EKS en la Guía del usuario de Amazon EventBridge.

Eventos de cambio de estado de ejecuciones de trabajo
Estado Gravedad Mensaje
SUBMITTED INFO La ejecución de trabajo JobRunId (JobRunName) se envió correctamente al clúster virtual VirtualClusterId a las Hora UTC.
RUNNING INFO La ejecución de trabajo JobRunId (JobRunName) en el clúster virtual VirtualClusterId se empezó a ejecutar a las Hora.
COMPLETED INFO La ejecución de trabajo JobRunId (JobRunName) en el clúster virtual VirtualClusterId se ha completado a las Hora. La ejecución de trabajo se empezó a ejecutar a las Hora y tardó Número minutos en completarse.
CANCELLED WARN La solicitud de cancelación de la ejecución de trabajo JobRunId (JobRunName) en el clúster virtual VirtualClusterId se llevó a cabo correctamente a las Hora y la ejecución del trabajo ahora está cancelada.
ERROR ERROR La ejecución de trabajo JobRunId (JobRunName) en el clúster virtual VirtualClusterId falló a las Hora.

Automatizar Amazon EMR en EKS con Eventos de CloudWatch

Puede utilizar Eventos de Amazon CloudWatch para automatizar los servicios de AWS y responder a eventos del sistema, como problemas de disponibilidad de aplicaciones o cambios de recursos. Los eventos de los servicios de AWS se envían a CloudWatch Events casi en tiempo real. Puede crear reglas sencillas para indicar qué eventos le resultan de interés, así como qué acciones automatizadas se van a realizar cuando un evento cumple una de las reglas. Entre las acciones que se pueden activar automáticamente se incluyen las siguientes:

  • Invocar una función de AWS Lambda

  • Invocar Ejecutar comando de Amazon EC2

  • Desviar el evento a Amazon Kinesis Data Streams

  • Activar una máquina de estado de AWS Step Functions

  • Notificar un tema de Amazon Simple Notification Service (SNS) o una cola de Amazon Simple Queue Service (SQS)

Algunos ejemplos del uso de Eventos de CloudWatch con Amazon EMR en EKS incluyen lo siguiente:

  • Activación de una función de Lambda cuando un trabajo se ejecuta correctamente

  • Notificar un tema de Amazon SNS cuando se produce un error en la ejecución de un trabajo

Amazon EMR en EKS genera los eventos de CloudWatch “detail-type:” “EMR Job Run State Change” para los cambios de estado SUBMITTED, RUNNING, CANCELLED, FAILED y COMPLETED.

Ejemplo: configurar una regla que invoque a Lambda

Siga estos pasos para configurar una regla de Eventos de CloudWatch que invoque a Lambda cuando se produzca un evento de “Cambio de estado de ejecución de trabajo de EMR”.

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

Agregue la función de Lambda de su propiedad como nuevo destino y dé permiso a Eventos de CloudWatch para invocar la función de Lambda de la siguiente manera. Reemplace 123456789012 por el ID de su cuenta.

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
nota

No puede escribir un programa que dependa del orden o de la existencia de eventos de notificación, ya que pueden no estar ordenados o faltar. Los eventos se emiten en la medida de lo posible.

Supervise el pod controlador del trabajo con una política de reintentos mediante Eventos de Amazon CloudWatch

Con los eventos de CloudWatch, puede supervisar los pods controladores que se han creado en trabajos que tienen políticas de reintentos. Para obtener más información, consulte la sección Supervisión de un trabajo con una política de reintento de esta guía.