Almacenamiento de registros
Para monitorizar el progreso de su trabajo en EMR sin servidor y solucionar errores en los trabajos, puede elegir la forma en que EMR sin servidor almacena y sirve los registros de las aplicaciones. Al enviar una ejecución de trabajo, puede especificar el almacenamiento administrado, con 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 aceptar los tipos y ubicaciones predeterminados. Para obtener más información sobre los registros de CloudWatch, consulte Registro de EMR sin servidor con Amazon CloudWatch. Con el almacenamiento gestionado y el registro de S3, en la siguiente tabla se muestran las ubicaciones de registro y la disponibilidad de la IU que puede esperar si elige almacenamiento administrado, buckets 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 recomendamos que mantenga seleccionada la opción de almacenamiento administrado. De lo contrario, no podrá utilizar las IU de la aplicación integradas.
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.
Para desactivar esta opción desde EMR Studio, desactive la casilla Permitir AWS para 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 la AWS CLI, utilice la configuración de managedPersistenceMonitoringConfiguration
cuando envíe una ejecución de trabajo.
{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }
Registro de EMR sin servidor con buckets de Amazon S3
Antes de que sus trabajos puedan enviar datos de registro a Amazon S3, se deben incluir los siguientes permisos en la política de permisos del rol de tiempo de ejecución del trabajo. Reemplace
con el nombre de su bucket de registro.amzn-s3-demo-logging-bucket
{ "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 de la AWS CLI, utilice la configuración de s3MonitoringConfiguration
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>'
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 sin servidor con Amazon CloudWatch
Al enviar un trabajo a una aplicación EMR sin servidor, puede elegir Amazon CloudWatch como opción para almacenar los registros de la aplicación. Esto le permite utilizar las funciones de análisis de registros de CloudWatch, como CloudWatch Logs Insights y Live Tail. También puede transmitir registros desde CloudWatch a otros sistemas, como OpenSearch, para analizarlos más a fondo.
EMR sin servidor proporciona registro en tiempo real de los registros de los controladores. Puede ver los registros en tiempo real con la función de seguimiento en directo de CloudWatch o mediante los comandos de seguimiento de la CLI de CloudWatch.
De forma predeterminada, el registro de CloudWatch está deshabilitado para EMR sin servidor. Para habilitarlo, consulte la configuración en AWS CLI.
nota
Amazon CloudWatch publica los registros en tiempo real, por lo que consume 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 registro de CloudWatch, le recomendamos que elija una mayor capacidad laboral. 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 limitación de CloudWatch es global para todos los servicios, incluido EMR sin servidor. Para obtener más información, consulte ¿Cómo se determina la limitación en mis registros de CloudWatch?
Permisos necesarios para realizar un registro con CloudWatch
Antes de que sus trabajos puedan enviar datos de registro a Amazon CloudWatch, se deben incluir los siguientes permisos en la política de permisos del rol de tiempo 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 almacenar los registros de EMR sin servidor de la AWS CLI, utilice la configuración de cloudWatchLoggingConfiguration
al iniciar la ejecución de un trabajo. Para ello, incluya las siguientes anulaciones de configuración. Opcionalmente, 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 registro de Amazon CloudWatch con la configuración predeterminada de EMR sin servidor:
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }
El siguiente ejemplo muestra todas las configuraciones obligatorias y opcionales que puede especificar al activar el registro de Amazon CloudWatch para EMR sin servidor. Los valores logTypes
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 sin servidor publica solo los registros stdout y stderr del controlador en CloudWatch. Si desea otros registros, puede especificar un rol de contenedor y los tipos de registro correspondientes con el campo logTypes
.
La siguiente lista muestra los tipos de trabajadores admitidos que puede especificar para la configuración de logTypes
:
- Spark
-
-
SPARK_DRIVER : ["STDERR", "STDOUT"]
-
SPARK_EXECUTOR : ["STDERR", "STDOUT"]
-
- Hive
-
-
HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]
-
TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]
-