¿Cómo soluciono un clúster de Amazon EMR que no termina o termina antes de lo esperado al utilizar una política de terminación automática?

3 minutos de lectura
0

Quiero resolver un clúster de Amazon EMR que no termina o termina antes de lo esperado al utilizar una política de terminación automática.

Descripción breve

Al crear un clúster de Amazon EMR, puedes activar la política de terminación automática. La política de terminación automática termina el clúster después de un periodo específico de tiempo de inactividad.

En las versiones 5.34 a 5.36 y 6.4.0 o posteriores de Amazon EMR, un clúster queda inactivo por los siguientes motivos:

  • Las aplicaciones de YARN no están activas.
  • El uso de HDFS está por debajo del 10 %.
  • Las conexiones del cuaderno de Amazon EMR o EMR Studio no están activas.
  • Las interfaces de usuario de las aplicaciones de clúster no están en uso.

En las versiones 5.30.0 a 5.33.1 y 6.1.0 a 6.3.0 o posteriores de Amazon EMR, un clúster queda inactivo por los siguientes motivos:

  • Las aplicaciones de YARN no están activas.
  • El uso de HDFS está por debajo del 10 %.
  • Los trabajos de Cluster Spark no están activos.

Resolución

Para resolver un clúster de Amazon EMR que no termina o termina antes de lo esperado al utilizar una política de terminación automática, sigue estos pasos:

  1. Confirma que el rol de perfil de instancia de Amazon Elastic Compute Cloud (Amazon EC2) EMR_EC2_DefaultRole tenga los siguientes permisos. Si el rol de perfil de instancia no tiene los siguientes permisos, el clúster permanece activo una vez que se agota el tiempo de espera de inactividad.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowAutoTerminationPolicyActions",
        "Effect": "Allow",
        "Action": [
          "elasticmapreduce:PutAutoTerminationPolicy",
          "elasticmapreduce:GetAutoTerminationPolicy",
          "elasticmapreduce:RemoveAutoTerminationPolicy"
        ],
        "Resource": "your-resources"
      }
    }
  2. En todas las versiones de Amazon EMR, asegúrate de que el proceso metrics-collector esté en ejecución. El proceso metrics-collector recopila las métricas para determinar la terminación automática.

    Para comprobar el proceso metrics-collector, ejecuta los siguientes comandos:

    ps -ef|grep metrics-collector

    Alternativa:

    systemctl status metricscollector.service

    Para obtener más información, consulta ¿Cómo reinicio un servicio en Amazon EMR?

  3. Consulta las métricas de CloudWatch del clúster de Amazon EMR. Asegúrate de que la métrica de CloudWatch AutoTerminationClusterIdle muestre 1 en el clúster. Si la métrica muestra 1, el clúster cumple los requisitos para la terminación automática. Si la métrica muestra 0, significa que el clúster está activo y no cumple los requisitos para la terminación automática.

  4. En el caso de las versiones de Amazon EMR anteriores a la 6.15.0, comprueba si has anulado la versión de Java predeterminada en el clúster de EMR. Si anulas la versión de Java predeterminada que se usa en Amazon EMR, la terminación automática no funcionará según lo esperado.

    Para resolver este problema, ejecuta el siguiente script en la instancia principal de un clúster en ejecución o como acción de arranque en un clúster nuevo:

    #Change EMR daemon startup scripts to use JDK8
    sudo sed -i 's#$JAVA_HOME#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre#g' /usr/bin/logpusher
    sudo sed -i 's#$JAVA_HOME#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre#g' /usr/bin/instance-controller
    sudo sed -i 's#/usr/bin/java#/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/java#g' /usr/bin/metricscollector
    
    #Restart the daemons
    sudo systemctl restart instance-controller
    sudo systemctl restart logpusher
    sudo systemctl restart metricscollector.service
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses