

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.

# Amazon EMR activado EC2 : supervisión mejorada con el CloudWatch uso de métricas y registros personalizados
<a name="enhanced-custom-metrics"></a>

## Descripción general de
<a name="enhanced-custom-metrics-overview"></a>

Amazon EMR ofrece capacidades de procesamiento de macrodatos potentes y rentables. Para maximizar el rendimiento y la utilización de los recursos, es esencial una supervisión eficaz. Amazon CloudWatch ofrece una observabilidad integral para los clústeres de EMR, lo que le permite realizar un seguimiento de las métricas y los registros en tiempo real. En este documento, se describe cómo:

1. Configure el CloudWatch agente para enviar EMR en los registros a EC2 CloudWatch

1. Agregue Hadoop, YARN y HBase métricas personalizadas mediante clasificaciones

1. Supervisar las métricas a través de paneles integrados

1. Realice un seguimiento de los registros del clúster mediante grupos de registros CloudWatch 

## Requisitos previos y antecedentes
<a name="enhanced-custom-metrics-prerequisites"></a>

De forma predeterminada, Amazon EMR envía las métricas básicas CloudWatch cada cinco minutos sin coste adicional. Con la versión 7.0\$1 de EMR, puede implementar el CloudWatch agente para:
+ Recopilar 34 métricas detalladas adicionales a intervalos de un minuto (se aplican cargos adicionales)
+ Recopilar métricas de todos los nodos del clúster
+ Agregue los datos en el nodo principal antes de enviarlos a CloudWatch
+ Acceda a las métricas a través de la pestaña Supervisión o la consola de EMR CloudWatch 

EMR 7.1 amplía estas capacidades y le permite configurar el agente para capturar métricas especializadas de Hadoop, YARN y componentes. HBase En el caso de los entornos que utilizan Prometheus, las métricas se pueden reenviar a Amazon Managed Service para Prometheus.

## CloudWatch Configuración del agente para los registros
<a name="enhanced-custom-metrics-agent-config"></a>

Para capturar los inicios de sesión de EMR CloudWatch, cree un archivo *cloudwatch-config.json* que defina los archivos de registro que se van a recopilar:

**cloudwatch-config.json**

```
{
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          { 
            "file_path": "/mnt/var/log/hadoop-yarn/hadoop-yarn-resourcemanager-*",
            "log_group_name": "/emr/yarn/resourcemnger",
            "log_stream_name": "{instance_id}",
            "publish_multi_logs" : true
          },
          { 
            "file_path": "/var/log/hadoop-hdfs/hadoop-hdfs-namenode-*",
            "log_group_name": "/emr/hdfs/namenode",
            "log_stream_name": "{instance_id}",
            "publish_multi_logs" : true
          }
        ]
      }
    }
}
```

## Secuencia CloudWatch de comandos de Bootstrap para la configuración del agente
<a name="enhanced-custom-metrics-bootstrap-script"></a>

Para aplicar su CloudWatch configuración personalizada a los nodos EMR, cree un script de arranque que reinicie el CloudWatch agente con su configuración. Este script garantiza que el agente se ejecute con sus parámetros específicos de recopilación de registros tras el aprovisionamiento del clúster.

### Creación del script de arranque
<a name="enhanced-custom-metrics-create-bootstrap"></a>

Cree un archivo denominado *cloudwatch-agent-bootstrap.sh* con el siguiente contenido:

```
#!/bin/bash
set -xe

EMR_SECONDARY_BA_SCRIPT=$(cat <<'EOF'
while true; do
NODEPROVISIONSTATE=$(sed -n '/localInstance [{]/,/[}]/ {/nodeProvisionCheckinRecord [{]/,/[}]/ {/status:/ p}}' /emr/instance-controller/lib/info/job-flow-state.txt | awk '{ print $2 }')

if [ "$NODEPROVISIONSTATE" == "SUCCESSFUL" ]; then
sleep 10
echo "Running my post provision bootstrap"
NODETYPE=$(cat /mnt/var/lib/instance-controller/extraInstanceData.json | jq -r '.instanceRole' | awk '{print tolower($0)}')

# Copy config file on the instance
sudo aws s3 cp s3://amzn-s3-demo-bucket1/cloudwatch-config.json /opt/aws/amazon-cloudwatch-agent/etc/stdout_log_config.json

# Start the agent with the created config file
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/stdout_log_config.json

# Restart CW Agent
sudo systemctl restart amazon-cloudwatch-agent

# Status CW Agent
echo "Status CW Agent"
sudo /usr/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

exit
fi

sleep 10
done
EOF
)

echo "${EMR_SECONDARY_BA_SCRIPT}" | tee -a /tmp/emr-secondary-ba.sh
chmod u+x /tmp/emr-secondary-ba.sh
/tmp/emr-secondary-ba.sh > /tmp/emr-secondary-ba.log 2>&1 &
exit 0
```

Sustituya el bucket de muestra con el nombre de su bucket.

### Nota de configuración importante
<a name="enhanced-custom-metrics-configuration-note"></a>

**importante**  
Antes de cargar el script, sustituya **<amzn-s3-demo-bucket1>** con el nombre real del bucket de S3 en el que guardó el archivo *cloudwatch-config.json* del paso anterior. Esto garantiza que el script de arranque pueda recuperar el archivo de configuración durante la inicialización del clúster.

Este script de arranque hará lo siguiente:
+ Esperar a que se complete el aprovisionamiento del nodo
+ Descarga tu configuración personalizada CloudWatch 
+ Detenga cualquier CloudWatch agente en ejecución
+ Reiniciar el agente con su configuración específica
+ Registrar el estado del agente para solucionar problemas

## Clasificaciones métricas personalizadas para Hadoop, YARN y HBase
<a name="enhanced-custom-metrics-custom-metric-classifications"></a>

Además de CloudWatch las métricas predeterminadas, puede mejorar sus capacidades de supervisión configurando métricas personalizadas específicas de la aplicación para los componentes del clúster de EMR. La API de configuración de Amazon EMR proporciona una forma flexible de definir exactamente qué métricas desea recopilar.

### Configuración de métricas personalizadas
<a name="enhanced-custom-metrics-configuring-custom-metrics"></a>

Puede implementar una recopilación de métricas personalizadas de dos maneras:
+ Durante la creación de clústeres nuevos
+ Como reconfiguración de los clústeres existentes a través de la consola EMR

### Creación de un archivo de clasificación
<a name="enhanced-custom-metrics-creating-classification-file"></a>

El archivo de clasificación define qué métricas de componentes específicos deben recopilarse del clúster. A continuación, se muestra un ejemplo de estructura para recopilar métricas de Hadoop personalizadas:

```
[
  {
    "Classification": "emr-metrics",
    "Configurations": [
      {
        "Classification": "emr-hadoop-hdfs-datanode-metrics",
        "Properties": {
          "Hadoop:service=DataNode,name=DataNodeActivity-*": "DatanodeNetworkErrors,TotalReadTime,TotalWriteTime,BytesRead,BytesWritten,RemoteBytesRead,RemoteBytesWritten,ReadBlockOpNumOps,ReadBlockOpAvgTime,WriteBlockOpNumOps,WriteBlockOpAvgTime",
          "otel.metric.export.interval": "30000"
        }
      },
      {
        "Classification": "emr-hadoop-yarn-nodemanager-metrics",
        "Properties": {
          "Hadoop:service=NodeManager,name=JvmMetrics": "MemNonHeapUsedM,MemNonHeapCommittedM,MemNonHeapMaxM,MemHeapUsedM,MemHeapCommittedM,MemHeapMaxM,MemMaxM",
          "Hadoop:service=NodeManager,name=NodeManagerMetrics": "ContainerCpuUtilization,NodeCpuUtilization,ContainersCompleted,ContainersFailed,ContainersKilled,ContainersLaunched,ContainersRolledBackOnFailure,ContainersRunning,ContainerUsedMemGB,ContainerUsedVMemGB,ContainerLaunchDurationNumOps,ContainerLaunchDurationAvgTime",
          "otel.metric.export.interval": "20000"
        }
      }
    ],
    "Properties": {}
  }
]
```

### Pasos para la implementación
<a name="enhanced-custom-metrics-implementation-steps"></a>

1. Cree un archivo JSON con las clasificaciones métricas que desee.

1. Personalice las métricas en función de sus requisitos de supervisión.

1. Guarde el archivo y cárguelo en su bucket de S3.

1. Consulte este archivo cuando cree un clúster nuevo o reconfigure uno existente.

### Prácticas recomendadas
<a name="enhanced-custom-metrics-best-practices"></a>
+ Recopile únicamente métricas que proporcionen información significativa sobre sus cargas de trabajo.
+ Tenga en cuenta el intervalo de recopilación de métricas en función de sus necesidades de supervisión.
+ Consulte AWS la documentación para obtener la lista completa de las métricas disponibles para cada componente.
+ Agrupe las métricas relacionadas dentro de la misma clasificación para una mejor organización.

Este enfoque le permite centrar la supervisión en las métricas más importantes para sus aplicaciones de EMR específicas, lo que le brinda una mayor visibilidad del rendimiento del clúster.

## Implementación de un clúster de EMR con integración CloudWatch
<a name="enhanced-custom-metrics-emr-cloudwatch-deployment"></a>

Siga estos pasos para crear un clúster de Amazon EMR que envíe automáticamente registros y métricas personalizadas a: CloudWatch

### Paso 1: Habilitar el agente CloudWatch
<a name="enhanced-custom-metrics-enable-cloudwatch-agent"></a>

Al crear el clúster de EMR a través de la consola de AWS administración:

1. Navegue hasta la sección **Aplicaciones** durante la creación del clúster.

1. Seleccione las casillas de verificación de sus aplicaciones principales (Hadoop, Spark, etc.).

1. Desplázate para buscar y seleccionar la opción **Amazon CloudWatch Agent**.

1. Esto habilita el agente en su clúster, lo cual es esencial para recopilar métricas y registros mejorados.

El CloudWatch agente se instalará en todos los nodos del clúster, lo que le permitirá recopilar las métricas del sistema y de la aplicación en los intervalos configurados.

![\[Agrupaciones de aplicaciones\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/metrics_name_applications.png)


**nota**  
El CloudWatch agente está disponible en la versión 7.0 y posteriores de EMR. Es necesario habilitar este componente para la recopilación de métricas y el reenvío de registros personalizados que se describen en esta guía.

### Paso 2: agregue la acción de arranque para la recopilación de registros
<a name="enhanced-custom-metrics-add-bootstrap-action"></a>

Para configurar el CloudWatch agente para que recopile y reenvíe archivos de registro específicos a CloudWatch:

1. En el asistente de creación de clústeres de EMR, vaya a la sección **Acciones de arranque**.

1. Haga clic en **Agregar acción de arranque**.

1. Seleccione **Acción personalizada** en el menú desplegable.

1. Proporcione un nombre para la acción de arranque (por ejemplo, **configurar el CloudWatch agente**)

1. En el campo **Ubicación del script**, introduzca la ruta S3 a su script cloudwatch-agent-bootstrap .sh (p. ej., s3://your-bucket-name/cloudwatch-agent-bootstrap.sh)

1. Haga clic en **Añadir** para guardar la acción de arranque.

Esta acción de arranque se ejecutará durante el inicio del clúster, lo que garantizará que CloudWatchagent esté correctamente configurada con sus ajustes personalizados para recopilar y reenviar los archivos de registro especificados en el archivo de configuración.

El agente empezará a recopilar registros automáticamente una vez que se hayan aprovisionado los nodos, lo que proporcionará una visibilidad casi en tiempo real de las operaciones del clúster a través CloudWatch de los registros.

![\[Acciones de arranque\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/metrics_bootstrap_actions.png)


### Paso 3: configurar la recopilación de métricas personalizadas
<a name="enhanced-custom-metrics-configure-custom"></a>

Para habilitar la recopilación de HBase métricas personalizadas de Hadoop, YARN o más allá del conjunto predeterminado:

1. En el asistente de creación de clústeres de EMR, vaya a la sección **Configuraciones**.

1. Haga clic en el botón **Editar configuraciones** para ampliar las opciones de configuración.

1. Seleccione la opción **Cargar JSON desde Amazon S3** en el menú desplegable del método de configuración.

1. Introduzca la ruta URI de S3 a su archivo de clasificación de métricas personalizado (por ejemplo, s3://amzn-s3-demo-bucket1/ emr-metrics-classification .json).

1. Haga clic en **Cargar** para analizar la configuración.

1. Compruebe que la configuración aparece correctamente en la interfaz de la consola.

1. Haga clic en **Guardar cambios** para aplicar estas configuraciones métricas al clúster.

Este paso indica al CloudWatch agente que recopile las métricas de los componentes específicos definidas en el archivo de clasificación. Las métricas se recopilarán en los intervalos especificados en la configuración y se publicarán allí CloudWatch, donde se podrán visualizar y analizar.

Las métricas personalizadas proporcionan información más detallada sobre las características de rendimiento de su clúster, lo que permite una supervisión y solución de problemas más precisas de sus aplicaciones de EMR.

![\[Configuración del software\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/metrics_software_setting.png)


### Actualización de la configuración de las métricas para los clústeres en ejecución
<a name="enhanced-custom-metrics-update-configuration"></a>

Puede modificar la configuración de recopilación de métricas de un clúster de EMR existente sin interrumpir las operaciones siguiendo estos pasos:

1. Navegue hasta el clúster de EMR activo en la consola de AWS administración.

1. Seleccione la pestaña **Configuraciones** en la vista de detalles del clúster.

1. Busque la sección **Configuraciones de grupos de instancias**.

1. Haga clic en el botón **Reconfigurar** para modificar la configuración.

1. Elija **Cargar JSON desde Amazon S3** o edite directamente la configuración.

1. Introduzca la ubicación actualizada del archivo de clasificación de métricas o realice los cambios en el editor.

1. Aplique los cambios para actualizar el comportamiento de recopilación de métricas.

Esta capacidad de reconfiguración le permite refinar su enfoque de supervisión a medida que evolucionan los requisitos de carga de trabajo. El CloudWatch agente se adaptará automáticamente a la nueva configuración y recopilará el conjunto de métricas actualizado sin necesidad de reiniciar el clúster ni de dejar de funcionar.

**importante**  
Los cambios de configuración pueden tardar varios minutos en propagarse a todos los nodos del clúster. Siga supervisando sus CloudWatch paneles de control para confirmar que las nuevas métricas aparecen según lo esperado.

![\[Configurations tab showing clúster and instance group settings with options to view JSON and reconfigure.\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/metrics_cluster_config.png)


## Validando tu integración CloudWatch
<a name="enhanced-custom-metrics-validating-cloudwatch"></a>

Tras completar los pasos de configuración, es el momento de comprobar que la configuración de supervisión funciona correctamente:

### Paso 1: implementar el clúster de EMR
<a name="enhanced-custom-metrics-deploy-emr-cluster"></a>

1. Revise todos los ajustes de configuración para comprobar su precisión.

1. Asegúrese de que las acciones de arranque y los archivos de clasificación estén referenciados correctamente.

1. Haga clic en **Crear clúster** para iniciar su entorno EMR.

1. Espere a que el clúster alcance el estado **En ejecución** (normalmente 5-15 minutos).

### Paso 2: ejecutar aplicaciones de prueba
<a name="enhanced-custom-metrics-execute-test"></a>

Envíe varias aplicaciones de prueba a Spark para generar métricas significativas:
+ Ejecute un trabajo sencillo de Spark que procese datos de muestra.
+ Ejecute una tarea de análisis que dure más tiempo para observar la utilización de los recursos.
+ Pruebe diferentes configuraciones de aplicaciones para comparar las métricas de rendimiento.

Una vez finalizadas las aplicaciones (o mientras están en ejecución):
+ Navegue hasta la CloudWatch consola.
+ Compruebe los registros de las aplicaciones en los grupos de registros configurados.
+ Examine los paneles de métricas para observar las métricas específicas de la CPU, la memoria y la aplicación.
+ Compruebe que las métricas personalizadas definidas en el archivo de clasificación aparecen en CloudWatch.

Este proceso de validación confirma que su CloudWatch integración captura correctamente tanto los registros como las métricas, lo que le proporciona una visibilidad completa del rendimiento y el comportamiento de las aplicaciones de su clúster de EMR.

## Acceso a los registros de EMR en CloudWatch grupos de registros
<a name="enhanced-custom-metrics-accessing-emr-logs"></a>

Una vez que el clúster de EMR esté en ejecución y el CloudWatch agente esté correctamente configurado, los registros de la aplicación y del sistema estarán disponibles en CloudWatch Registros. Siga estos pasos para acceder a ellos y analizarlos:

### Visualización de los grupos de registros
<a name="enhanced-custom-metrics-viewing-log-groups"></a>

1. Navegue hasta la CloudWatch consola en AWS Management Console.

1. En el panel de navegación izquierdo, seleccione **Grupos de registros**.

1. Busque los grupos de registros creados por su configuración, como:
   + /emr/yarn/resourcemngerpara los ResourceManager registros de YARN.
   + /emr/hdfs/namenodepara NameNode registros HDFS.
   + Cualquier grupo de registro adicional que se especifique en el archivo de configuración.

Cada grupo de registros contiene flujos de registros organizados por ID de instancia, lo que le permite rastrear los registros hasta nodos específicos del clúster.

### Trabajar con datos de registros
<a name="enhanced-custom-metrics-working-with-log-data"></a>
+ *Buscar datos de registro:* utilice CloudWatch Logs Insights para realizar consultas estructuradas en sus grupos de registros.
+ *Cree métricas:* extraiga métricas de los patrones de registro para crear CloudWatch métricas personalizadas.
+ *Configure alertas:* configure las alarmas en función de patrones de error o frecuencias de registro específicos.
+ *Exportación de registros:* descargue los registros para analizarlos o archivarlos sin conexión.

### Retención de registros
<a name="enhanced-custom-metrics-log-retention"></a>

**nota**  
De forma predeterminada, los registros se conservan durante 30 días. Puede modificar la política de retención de cada grupo de registro para conservar los registros durante períodos más largos si es necesario con fines de cumplimiento o análisis.

CloudWatch Los registros proporcionan una ubicación centralizada para todos los datos de registro de EMR, lo que elimina la necesidad de usar SSH en los nodos individuales del clúster para solucionar problemas o analizar el comportamiento de las aplicaciones.

## Visualización de métricas personalizadas en el panel de supervisión de EMR
<a name="viewing-custom-metrics"></a>

Una vez que el clúster de EMR se ejecute con el CloudWatch agente y la configuración de métricas personalizadas, puede supervisar fácilmente estas métricas directamente en la consola de EMR:

### Acceso a sus métricas personalizadas
<a name="accessing-custom-metrics"></a>

1. Navegue hasta el clúster de EMR en la consola de AWS administración.

1. Seleccione la pestaña **Monitorización** en la página de detalles del clúster.

1. Localice el menú desplegable de **Filtrar clasificación métrica** cerca de la parte superior de los paneles de monitoreo.

1. Utilice este filtro para seleccionar categorías de métricas específicas:
   + Elija **HDFS** para ver NameNode y medir. DataNode 
   + Seleccione **YARN** para ver ResourceManager y almacenar las métricas.
   + Elija **HBase**datos HBase de rendimiento específicos.
   + Seleccione las clasificaciones de métricas personalizadas que haya definido.

El panel se actualizará de forma dinámica para mostrar gráficos de las métricas seleccionadas, que muestran las tendencias de rendimiento a lo largo del tiempo.

### Uso de visualizaciones métricas
<a name="working-with-metric-visualizations"></a>
+ *Ajustar los intervalos de tiempo:* cambie la ventana de tiempo para ver la actividad reciente o las tendencias históricas.
+ *Compare las métricas:* muestre varias métricas relacionadas side-by-side para el análisis de correlación.
+ *Funciones de zoom:* concéntrese en períodos de tiempo específicos en los que aparecen anomalías o patrones.
+ *Actualizar los datos:* actualice las visualizaciones con los datos de métricas más recientes prácticamente en tiempo real.

Este enfoque de monitoreo integrado le permite realizar un seguimiento tanto de las métricas de EMR estándar como de las métricas personalizadas en un panel unificado, lo que facilita la identificación de los problemas de rendimiento, las limitaciones de recursos o los cuellos de botella de las aplicaciones sin salir de la consola de EMR.

![\[EMR clúster monitoring dashboard showing CloudWatch metrics and filter options.\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/metrics_cloudwatch_metrics.png)
