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.
Publicar registros de Amazon EMR en Logs CloudWatch
Descripción general de
Amazon EMR on EC2 proporciona una integración nativa con Amazon CloudWatch Logs, lo que le permite enviar los registros del clúster directamente a. CloudWatch Esta función simplifica la administración de registros y proporciona un acceso centralizado a los registros del clúster de EMR para la supervisión, la solución de problemas y el análisis.
Con el CloudWatch registro activado, puede capturar y transmitir automáticamente los registros de sus clústeres de EMR a los grupos de CloudWatch registros. Esto incluye los registros de ejecución escalonada, los registros de los controladores de Spark y los registros de los ejecutores de Spark, lo que le proporciona una visibilidad completa de las operaciones del clúster y del comportamiento de las aplicaciones.
La función de CloudWatch registro está disponible a partir de la versión 7.11.0 de Amazon EMR y se configura mediante el MonitoringConfiguration parámetro al crear el clúster. Una vez habilitados, los registros se transmiten automáticamente a CloudWatch medida que se generan, lo que proporciona acceso casi en tiempo real a los datos de registro a través de la consola o la CloudWatch API.
Requisitos previos
Antes de habilitar el CloudWatch registro para su clúster de EMR, asegúrese de que se cumplan los siguientes requisitos previos:
-
Versión de Amazon EMR: su clúster debe utilizar Amazon EMR versión 7.11.0 o posterior.
-
CloudWatch Aplicación de agente: el Amazon CloudWatch Agent debe estar instalado en el clúster.
-
Permisos de IAM: el perfil de EC2 instancia de su clúster debe tener los permisos de CloudWatch registro necesarios.
-
Puntos de enlace de VPC (para subredes privadas): si su clúster está en una subred privada, debe configurar los puntos de enlace de VPC para los registros. CloudWatch
Permisos
El CloudWatch agente requiere permisos específicos AWS Identity and Access Management(IAM) para crear grupos de registros, crear flujos de registros y escribir eventos de registro en los registros. CloudWatch Estos permisos deben adjuntarse al perfil de EC2 instancia de Amazon que utiliza su clúster de EMR.
Política de IAM obligatoria
Añada la siguiente política a su perfil de EC2 instancia para que Amazon EMR conceda los permisos necesarios:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:PutRetentionPolicy", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": "*", "Sid": "AllowCWACloudWatchLogs" } ] }
Adjuntar la política
Para adjuntar esta política a su perfil de EC2 instancia para EMR:
-
Vaya a la consola de IAM.
-
Localice el perfil de instancia utilizado por su clúster de EMR, que suele ser.
EMR_EC2_DefaultRole -
Cree una nueva política en línea o adjunte una política administrada por el cliente con los permisos anteriores.
-
Guarda los cambios en la política.
Para obtener más información sobre las funciones de IAM para Amazon EMR, consulte Configurar las funciones de IAM para los permisos de Amazon EMR AWS a los servicios y recursos en la Guía de administración de Amazon EMR.
Configuración del registro CloudWatch
Puede habilitar el CloudWatch registro al crear un nuevo clúster de EMR a través de la consola AWS de administración AWS CLI, o. AWS SDKs La configuración se especifica mediante el MonitoringConfiguration parámetro.
Uso de la consola AWS de administración
Para crear un clúster con el CloudWatch registro desde la consola:
-
Navegue hasta la AWS consola EMR.
-
Elija Create cluster.
-
En Nombre y aplicaciones, seleccione una versión de Amazon EMR 7.11.0 o superior.
-
En Paquete de aplicaciones, selecciona las aplicaciones que deseas instalar y asegúrate de que Amazon CloudWatch Agent esté incluido en tus selecciones.
-
En Registros de clústeres, selecciona la opción Publicar registros específicos de clústeres en Amazon. CloudWatch
-
(Opcional) Configura los siguientes ajustes:
-
Nombre del grupo de registros: nombre del grupo de registros personalizado. El valor predeterminado es
/aws/emr/{cluster_id}. -
Prefijo de flujo de registro: Prefijo para los nombres de flujo de registro El valor predeterminado es.
empty -
CloudWatch Clave KMS: clave KMS ARN para el cifrado de registros (opcional).
-
Tipos de registro: seleccione los tipos de registro que desea capturar (predeterminado: step y Spark driver)
-
-
Complete el resto de los ajustes de configuración del clúster.
-
Elija Create cluster.
Una vez creado el clúster, puede acceder al enlace CloudWatch Registros desde la página de detalles del clúster de EMR, en Administración de clústeres → Destino del registro en Amazon. CloudWatch
Usando el AWS CLI
Puede habilitar el CloudWatch registro mediante el AWS CLI create-cluster comando with. El CloudWatch agente debe estar incluido en el --applications parámetro y el registro se configura a través del --monitoring-configuration parámetro.
Ejemplo: configuración predeterminada
EMR capturará automáticamente los registros de pasos y solo los registros del controlador de Spark y los enviará al grupo de registros predeterminado.
aws emr create-cluster \ --name "EMR cluster with CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true } }'
Cuando utilices la configuración predeterminada:
-
Nombre del grupo de registros:
/aws/emr/{cluster_id}(donde{cluster_id}se reemplaza automáticamente por el ID de su clúster). -
Prefijo del flujo de registro: vacío (sin prefijo).
-
Tipos de registro:
STEP_LOGSySPARK_DRIVERactivados, cada uno de los cuales captura ambosSTDOUTy.STDERR -
Cifrado: no hay claves administradas por el cliente (usa el cifrado del CloudWatch lado del servidor de forma predeterminada)
Ejemplo: configuración personalizada
En este ejemplo, se muestra una configuración personalizada con nombres de grupos de registros específicos, cifrado KMS y tipos de registro selectivos.
aws emr create-cluster \ --name "EMR cluster with custom CloudWatch Logs" \ --release-label emr-7.11.0 \ --applications Name=Spark Name=AmazonCloudWatchAgent \ --instance-type m7g.2xlarge \ --instance-count 3 \ --use-default-roles \ --monitoring-configuration '{ "CloudWatchLogConfiguration": { "Enabled": true, "LogGroupName": "/my-company/emr/production", "LogStreamNamePrefix": "cluster-prod", "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"], "SPARK_EXECUTOR": ["STDERR", "STDOUT"] } } }'
Esta configuración:
-
Crea registros en un grupo de registros personalizado
/my-company/emr/production. -
Prefija todos los nombres de los flujos de registro con
cluster-prod. -
Cifra los registros con la clave KMS especificada.
-
Captura todos los tipos de registros: registros de pasos, registros de controladores de Spark y registros de ejecutores de Spark.
Para obtener más información sobre el uso AWS CLI de Amazon EMR, consulte la Referencia de AWS CLI comandos para EMR.
Referencia de la configuración
CloudWatchLogConfiguration Parámetros
El CloudWatchLogConfigurationv objeto admite los siguientes parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Enabled |
Booleano | Sí | trueConfigúrelo en para habilitar el CloudWatch registro. falseConfigúrelo en para deshabilitar. |
LogGroupName |
Cadena | No | El nombre del grupo de CloudWatch registros. Valor predeterminado: /aws/emr/{cluster_id} |
LogStreamNamePrefix |
Cadena | No | Prefijo para los nombres de los flujos de registro. Predeterminado: cadena vacía |
EncryptionKeyArn |
Cadena | No | ARN de la clave KMS para el cifrado de registros. Si no se especifica, los registros se cifran mediante el cifrado CloudWatch del lado del servidor. |
LogTypes |
Objeto | No | Especifica los tipos de registro que se van a capturar. Predeterminado: STEP_LOGS y SPARK_DRIVER escribe con STDOUT y STDERR. |
Tipos de registro
Amazon EMR admite tres tipos de registro, cada uno de los cuales captura tanto la salida estándar como los flujos de error estándar:
| Tipo de registro | Description (Descripción) | Transmisiones disponibles |
|---|---|---|
STEP_LOGS |
Registros de ejecución de pasos EMR, incluidos los registros del controlador de pasos | STDOUT, STDERR |
SPARK_DRIVER |
Registros del controlador Apache Spark desde las aplicaciones de Spark | STDOUT, STDERR |
SPARK_EXECUTOR |
El ejecutor de Apache Spark registra desde los nodos de trabajo | STDOUT, STDERR |
Configuración de tipos de registro predeterminados
Si no se especifica el LogTypes parámetro, EMR utiliza la siguiente configuración predeterminada:
"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"], "SPARK_DRIVER": ["STDOUT", "STDERR"] }
Configuración de tipos de registro personalizados
Puede personalizar los tipos de registro que desea capturar especificando el LogTypes parámetro de forma explícita. Por ejemplo, para capturar solo los registros de pasos:
"LogTypes": { "STEP_LOGS": ["STDOUT", "STDERR"] }
O para capturar solo los errores estándar de los controladores de Spark:
"LogTypes": { "SPARK_DRIVER": ["STDERR"] }
Denominación de grupos y flujos de registros
CloudWatch organiza los registros en grupos de registros y flujos de registros:
-
Grupo de registros: conjunto de flujos de registros que comparten la misma configuración de retención, supervisión y control de acceso.
-
Nombre predeterminado:
/aws/emr/{cluster_id} -
Nombre personalizado: cualquier nombre de grupo de CloudWatch registros válido que especifique.
-
-
Secuencia de registro: secuencia de eventos de registro de una sola fuente:
-
Patrones de nomenclatura:
-
Registros de pasos:
{prefix}/steps/{step_id}/{file_name}. -
Registros del controlador y del ejecutor de Spark:
{prefix}/applications/{application_id}/{container_id}/{file_name}
-
-
Ejemplos:
-
/steps/s-ABCDEFG123456/stdout -
cluster-prod/steps/s-ABCDEFG123456/stderr -
/applications/application_1234567890_0001/container_1234567890_0001_01_000001/stdout
-
-
Cifrar registros con AWS KMS
Puede cifrar los CloudWatch registros en reposo mediante AWS Key Management Service (KMS). Para habilitar el cifrado:
-
Cree o identifique una clave KMS en la misma AWS región que su clúster de EMR.
-
Asegúrese de que la política de claves de KMS permita que el servicio de CloudWatch registros utilice la clave.
-
Añada el
EncryptionKeyArnparámetro a suCloudWatchLogConfiguration.
Para obtener información detallada sobre cómo cifrar CloudWatch los datos de los registros, consulte Cifrar los datos de registro en los CloudWatch registros mediante. AWS Key Management Service
Ejemplo de cifrado KMS
{ "CloudWatchLogConfiguration": { "Enabled": true, "EncryptionKeyArn": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } }
Visualización de los registros CloudWatch
Una vez que el clúster se ejecute con el CloudWatch registro activado, podrá ver y analizar los registros a través de la CloudWatch consola o la API.
Acceso a los registros desde la consola EMR
La forma más rápida de acceder a los registros del clúster es directamente desde la consola EMR:
-
Vaya a la consola de Amazon EMR.
-
Seleccione su clúster de la lista de clústeres.
-
En la página de detalles del clúster, busque la sección Administración de clústeres.
-
Haz clic en el CloudWatch enlace Destino del registro en Amazon.
Este enlace lo lleva directamente a la consola de CloudWatch registros filtrada por el grupo de registros de su clúster.
Acceder a los registros desde la CloudWatch consola
Para navegar manualmente hasta tus inicios de sesión CloudWatch:
-
Abra la consola de CloudWatch
. -
En el panel de navegación, seleccione Grupos de registro.
-
Busca tu grupo de registros (predeterminado:
/aws/emr/{cluster_id}o el nombre de tu grupo de registros personalizado) -
Elija el grupo de registros para ver los flujos de registro disponibles.
-
Seleccione un flujo de registro para ver sus eventos de registro.
Para obtener más información sobre cómo trabajar con CloudWatch registros, consulte la Guía del usuario de Amazon CloudWatch Logs.
Consideraciones
CloudWatch Comportamiento del agente
El Amazon CloudWatch Agent proporciona métricas y capacidades de registro:
-
Al habilitar el CloudWatch agente por sí solo (sin
MonitoringConfiguration), solo se publican CloudWatch las métricas para CloudWatch. No se envía ningún registro. -
Para habilitar el CloudWatch registro se requieren tanto la aplicación del CloudWatch agente como el
MonitoringConfigurationparámetro conCloudWatchLogConfiguration. Esto permite combinar las métricas y el registro.
Habilitar solo el CloudWatch registro (deshabilitar CloudWatch las métricas)
Si desea habilitar el CloudWatch registro pero deshabilitar la función de recopilación de métricas, puede configurar el CloudWatch agente para que deje de exportar las métricas. Añada la siguiente clasificación a la configuración del clúster:
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]
Para obtener más información sobre CloudWatch las métricas, consulta Supervisar las métricas con Amazon CloudWatch.
Limitaciones conocidas
- Puntos de datos de las métricas durante la carga de registros:
-
Cuando el CloudWatch registro está activo, es posible que se observen brechas ocasionales en los datos de CloudWatch las métricas durante los períodos de alta actividad del registro, especialmente durante el envío de los pasos. Esto ocurre porque el controlador de instancias EMR reinicia el CloudWatch agente para aplicar nuevas configuraciones de registro cuando se envían los pasos, lo que interrumpe temporalmente la recopilación de métricas. Esto no afecta a la entrega de registros ni a la funcionalidad del clúster.
Requisitos de subred privada
Para publicar registros en Logs para un clúster de EMR en una subred privada, cree y asocie el punto de enlace de la VPC de Logs a la CloudWatch VPC de su clúster. CloudWatch
Para obtener más información sobre CloudWatch los puntos de enlace de Logs, consulte los puntos de enlace y las cuotas de Amazon CloudWatch Logs en la Guía de referencia AWS general.
Consideraciones sobre costos
CloudWatch Los cargos por registros se basan en:
-
Ingesta de datos: volumen de datos de registro ingeridos CloudWatch
-
Almacenamiento: cantidad de datos de registro almacenados, en función de su configuración de retención
-
Análisis de datos: las consultas se ejecutan mediante CloudWatch Logs Insights
Cómo optimizar los costos:
-
Establezca los períodos de retención de registros adecuados para sus grupos de registros.
-
Utilice tipos de registro selectivos para capturar solo los registros que necesite.
-
Considere la posibilidad de utilizar el registro de Amazon S3 para el almacenamiento de registros a largo plazo a un costo menor.
Para obtener información sobre los precios actuales, consulta Amazon CloudWatch Pricing.
Recursos adicionales
-
Supervisa las métricas con Amazon CloudWatch: información sobre la recopilación de CloudWatch métricas
-
Configuración de funciones de IAM para Amazon EMR: configuración de funciones de IAM para clústeres de EMR
-
Guía del usuario de Amazon CloudWatch Logs: guía completa de las funciones CloudWatch de Logs
-
AWS CLI Referencia de comandos para EMR: documentación de referencia de CLI