Almacenamiento de 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.

Almacenamiento de registros

Para monitorear el progreso de su trabajo en EMR Serverless y solucionar errores en los trabajos, elija la forma en que EMR Serverless almacena y sirve los registros de las aplicaciones. Cuando envíe una ejecución de trabajo, especifique almacenamiento gestionado, Amazon S3 y Amazon CloudWatch como opciones de registro.

Con CloudWatch, especifique los tipos de registro y las ubicaciones de registro que quiere usar, o acepte los tipos y ubicaciones predeterminados. Para obtener más información sobre CloudWatch los registros, consulteRegistro de EMR Serverless con Amazon CloudWatch. Con el almacenamiento gestionado y el registro de S3, en la siguiente tabla se enumeran 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 IU de las aplicaciones

Almacenamiento administrado

Almacenado en un almacenamiento administrado

Almacenado en un almacenamiento administrado

Compatible

Tanto almacenamiento administrado como bucket de S3

Almacenado en ambos lugares

Almacenado en un bucket de S3

Compatible

Bucket de Amazon S3

Almacenado en un bucket de S3

Almacenado en un bucket de S3

No admitido1

1 Le sugerimos que mantenga seleccionada la opción de almacenamiento administrado. De lo contrario, no podrá utilizar la aplicación integrada UIs.

Registro para EMR sin servidor con almacenamiento administrado

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

nota

Si desactiva la opción predeterminada, Amazon EMR no podrá solucionar los problemas de sus trabajos en su nombre. Ejemplo: no puede acceder a Spark-UI desde la consola sin servidor de EMR.

Para desactivar esta opción desde EMR Studio, desactive la casilla Permitir AWS conservar 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 } } }

Si su aplicación EMR Serverless se encuentra en una subred privada con puntos de enlace de VPC para Amazon S3 y adjunta una política de puntos finales para controlar el acceso, añada los siguientes permisos para que EMR Serverless almacene y publique los registros de la aplicación. ResourceSustitúyalos por los AppInfo buckets de la tabla de regiones disponibles en Ejemplos de políticas para subredes privadas que acceden a Amazon S3.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EMRServerlessManagedLogging", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::prod.us-east-1.appinfo.src", "arn:aws:s3:::prod.us-east-1.appinfo.src/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "emr-serverless.amazonaws.com", "aws:SourceVpc": "vpc-12345678" } } } ] }

Además, utilice la clave de aws:SourceVpc condición para asegurarse de que la solicitud pase por la VPC a la que está conectado el punto final de la VPC.

Registro de EMR sin servidor con buckets de Amazon S3

Antes de que sus trabajos puedan enviar datos de registro a Amazon S3, incluya los siguientes permisos en la política de permisos del rol de ejecución del trabajo. Reemplace amzn-s3-demo-logging-bucket con el nombre de su bucket de registro.

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

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 el siguiente --configuration-overrides en la configuración.

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

Para los trabajos por lotes que no tienen habilitados los reintentos, EMR sin servidor envía los registros a la siguiente ruta:

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

EMR Serverless almacena los registros del controlador Spark en la siguiente ruta

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

EMR Serverless almacena los registros del ejecutor de Spark en la siguiente ruta

'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'

El <EXECUTOR-ID>es un número entero.

Las versiones 7.1.0 y posteriores de EMR sin servidor admiten reintentos para trabajos de streaming y trabajos por lotes. Si ejecuta un trabajo con los reintentos habilitados, EMR sin servidor agrega automáticamente un número de intento al prefijo de la ruta de registro, para poder hacer una mejor distinción y seguimiento de los registros.

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

Registro de EMR Serverless con Amazon CloudWatch

Cuando envíe un trabajo a una aplicación EMR Serverless, elija Amazon CloudWatch como opción para almacenar los registros de su 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.

EMR sin servidor proporciona registro en tiempo real de los registros de los controladores. Puede acceder a los registros en tiempo real con la función de cola CloudWatch en vivo o mediante los comandos de cola de la CloudWatch CLI.

De forma predeterminada, el CloudWatch registro está deshabilitado para EMR Serverless. Para habilitarlo, utilice la configuración de. AWS CLI

nota

Amazon CloudWatch publica los registros en tiempo real, por lo que obtiene más recursos de los trabajadores. Si elige una capacidad laboral baja, el impacto en el tiempo de ejecución de su trabajo podría aumentar. Si habilita el CloudWatch registro, le sugerimos que elija una mayor capacidad de trabajo. También es posible que la publicación del registro se reduzca si la tasa de transacciones por segundo (TPS) es demasiado baja para PutLogEvents. La configuración de CloudWatch regulación es global para todos los servicios, incluido EMR Serverless. 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

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:*:123456789012:*" ], "Sid": "AllowLOGSDescribeloggroups" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:123456789012:log-group:my-log-group-name:*" ], "Sid": "AllowLOGSPutlogevents" } ] }

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, incluya 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 de registros predeterminado. /applications/applicationId/jobs/jobId/worker-type

Las versiones 7.1.0 y posteriores de EMR sin servidor admiten reintentos para trabajos de streaming y trabajos por lotes. Si habilitó reintentos para un trabajo, EMR sin servidor agrega automáticamente un número de intento al prefijo de la ruta de registro, para poder hacer una mejor distinción y seguimiento de 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 especifican cuándo se activa el CloudWatch registro de Amazon para EMR Serverless. Los logTypes valores admitidos también se muestran en el siguiente 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, especifique un rol de contenedor y los tipos de registro correspondientes en el campo. logTypes

En la siguiente lista se muestran los tipos de trabajadores compatibles que se especifican 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"]