Almacenar registros - Amazon EMR

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.

Almacenar registros

Para supervisar el progreso de su trabajo en EMR Serverless y solucionar los errores en los trabajos, puede elegir la forma en que EMR Serverless almacena y publica los registros de las aplicaciones. Al enviar una ejecución de trabajo, puede especificar el almacenamiento gestionado, Amazon S3 y Amazon CloudWatch como opciones de registro.

Con CloudWatch, puede especificar los tipos de registro y las ubicaciones de registro que quiere usar, o bien aceptar los tipos y ubicaciones predeterminados. Para obtener más información sobre CloudWatch los registros, consulteCómo iniciar sesión EMR sin servidor con Amazon CloudWatch. Con el almacenamiento gestionado y el registro de S3, la siguiente tabla muestra las ubicaciones de registro y la disponibilidad de la interfaz de usuario que puede esperar si elige almacenamiento gestionado, depósitos de Amazon S3 o ambos.

Opción Registros de eventos Registros de contenedor Interfaz de usuario de aplicación

Almacenamiento gestionado

Almacenado en almacenamiento gestionado

Almacenado en un almacenamiento gestionado

Compatible

Tanto almacenamiento gestionado como depósito S3

Almacenado en ambos lugares

Almacenado en un depósito S3

Compatible

Bucket de Amazon S3

Almacenado en un depósito S3

Almacenado en un depósito S3

No se admite 1

1 Le recomendamos que mantenga seleccionada la opción Almacenamiento gestionado. De lo contrario, no podrá utilizar la aplicación integradaUIs.

Registro para sistemas EMR sin servidor con almacenamiento gestionado

De forma predeterminada, EMR Serverless almacena los registros de las aplicaciones de forma segura en el almacenamiento EMR gestionado por Amazon durante un máximo de 30 días.

nota

Si desactivas la opción predeterminada, Amazon no EMR podrá solucionar los problemas de tus trabajos en tu nombre.

Para desactivar esta opción desde EMR Studio, desmarca la casilla Permitir AWS conservar los registros durante 30 días en la sección Configuración adicional de la página Enviar trabajo.

Para desactivar esta opción desde AWS CLI, utilice la managedPersistenceMonitoringConfiguration configuración cuando envíe una ejecución de tareas.

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }

Registro para aplicaciones EMR sin servidor con buckets de Amazon S3

Antes de que sus trabajos puedan enviar datos de registro a Amazon S3, debe incluir los siguientes permisos en la política de permisos del rol de ejecución del trabajo. amzn-s3-demo-logging-bucketSustitúyalos por el nombre de su depósito de registro.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-logging-bucket/*" ] } ] }

Para configurar un bucket de Amazon S3 para almacenar los registros del AWS CLI, utilice la s3MonitoringConfiguration configuración al iniciar la ejecución de un trabajo. Para ello, incluya lo siguiente --configuration-overrides en la configuración.

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/" } } }

En el caso de los trabajos por lotes que no tienen habilitados los reintentos, EMR Serverless envía los registros a la siguiente ruta:

'/applications/<applicationId>/jobs/<jobId>'

EMRLas versiones 7.1.0 y posteriores de Serverless admiten reintentos para trabajos de streaming y trabajos por lotes. Si ejecuta un trabajo con los reintentos habilitados, EMR Serverless agrega automáticamente un número de intento al prefijo de la ruta del registro para que pueda distinguir y rastrear mejor los registros.

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'

Cómo iniciar sesión EMR sin servidor con Amazon CloudWatch

Cuando envías un trabajo a una aplicación EMR sin servidor, puedes elegir Amazon CloudWatch como opción para almacenar los registros de tu aplicación. Esto le permite utilizar CloudWatch funciones de análisis de CloudWatch registros, como Logs Insights y Live Tail. También puede transmitir registros desde CloudWatch otros sistemas, por ejemplo, OpenSearch para su posterior análisis.

EMRServerless proporciona un registro en tiempo real de los registros de los controladores. Puede ver los registros en tiempo real con la función de seguimiento CloudWatch en tiempo real o mediante comandos de CloudWatch CLI seguimiento.

De forma predeterminada, el CloudWatch registro está deshabilitado en EMR Serverless. Para habilitarlo, consulte la configuración enAWS CLI.

nota

Amazon CloudWatch publica los registros en tiempo real, por lo que obtiene más recursos de los trabajadores. Si eliges una capacidad laboral baja, el impacto en el tiempo de ejecución de tu trabajo podría aumentar. Si habilita el CloudWatch registro, le recomendamos que elija una mayor capacidad de trabajo. También es posible que la publicación del registro se acelere si la tasa de transacciones por segundo (TPS) es demasiado baja. PutLogEvents La configuración de CloudWatch limitación es global para todos los servicios, incluido Serverless. EMR Para obtener más información, consulte ¿Cómo se determina la limitación en mis registros? CloudWatch en AWS re:post.

Permisos necesarios para iniciar sesión con CloudWatch

Para que tus trabajos puedan enviar datos de registro a Amazon CloudWatch, debes incluir los siguientes permisos en la política de permisos del rol de ejecución del trabajo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:Región de AWS:111122223333:*" ] }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:Región de AWS:111122223333:log-group:my-log-group-name:*" ] } ] }

AWS CLI

Para configurar Amazon CloudWatch para que almacene los registros de EMR Serverless desde AWS CLI, utilice la cloudWatchLoggingConfiguration configuración al iniciar la ejecución de un trabajo. Para ello, proporciona las siguientes anulaciones de configuración. Si lo desea, también puede proporcionar un nombre de grupo de registros, un nombre de prefijo de flujo de registro, tipos de registro y una clave de cifrado. ARN

Si no especifica los valores opcionales, CloudWatch publica los registros en un grupo de registros predeterminado/aws/emr-serverless, con el flujo /applications/applicationId/jobs/jobId/worker-type de registros predeterminado.

EMRLas versiones 7.1.0 y posteriores sin servidor admiten reintentos para trabajos de streaming y trabajos por lotes. Si habilitó los reintentos para un trabajo, EMR Serverless agrega automáticamente un número de intento al prefijo de la ruta del registro, para que pueda distinguir y rastrear mejor los registros.

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'

A continuación se muestra la configuración mínima necesaria para activar el CloudWatch registro de Amazon con la configuración predeterminada de EMR Serverless:

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }

El siguiente ejemplo muestra todas las configuraciones obligatorias y opcionales que puede especificar al activar Amazon CloudWatch Logging para EMR Serverless. Los logTypes valores admitidos también se muestran debajo de este ejemplo.

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, // Required "logGroupName": "Example_logGroup", // Optional "logStreamNamePrefix": "Example_logStream", // Optional "encryptionKeyArn": "key-arn", // Optional "logTypes": { "SPARK_DRIVER": ["stdout", "stderr"] //List of values } } } }

De forma predeterminada, EMR Serverless publica solo los registros stdout y stderr del controlador. CloudWatch Si desea otros registros, puede especificar un rol de contenedor y los tipos de registro correspondientes con el campo. logTypes

En la siguiente lista se muestran los tipos de trabajadores compatibles que puede especificar para la logTypes configuración:

Spark
  • SPARK_DRIVER : ["STDERR", "STDOUT"]

  • SPARK_EXECUTOR : ["STDERR", "STDOUT"]

Hive
  • HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]

  • TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]