Como resolvo um cluster do Amazon EMR que não se encerra ou se encerra antes do esperado quando eu uso uma política de encerramento automático?

3 minuto de leitura
0

Eu quero resolver um cluster do Amazon EMR que não se encerra ou se encerra antes do esperado quando uso uma política de encerramento automático.

Breve descrição

Ao criar um cluster do Amazon EMR, você pode ativar a política de encerramento automático. A política de encerramento automático encerra o cluster após um período específico de inatividade.

Nas versões 5.34 a 5.36 e 6.4.0 ou posteriores do Amazon EMR, um cluster é considerado inativo pelos seguintes motivos:

  • As aplicações do YARN não estão ativas.
  • A utilização do HDFS está abaixo de 10%.
  • As conexões do Amazon EMR Notebook ou do EMR Studio não estão ativas.
  • As interfaces de usuário da aplicação de cluster não estão em uso.

Nas versões 5.30.0 a 5.33.1 e 6.1.0 a 6.3.0 do Amazon EMR, um cluster é considerado inativo pelos seguintes motivos:

  • As aplicações do YARN não estão ativas.
  • A utilização do HDFS está abaixo de 10%.
  • As tarefas do cluster Spark não estão ativas.

Resolução

Para resolver um cluster do Amazon EMR que não se encerra ou se encerra antes do esperado quando você usa uma política de encerramento automático, conclua as seguintes etapas:

  1. Confirme se a função de perfil de instância EMR_EC2_DefaultRole do Amazon Elastic Compute Cloud (Amazon EC2) tem as permissões a seguir. Se a função do perfil de instância não tiver as permissões a seguir, o cluster permanecerá ativo após atingir o período de tempo limite de inatividade.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowAutoTerminationPolicyActions",
        "Effect": "Allow",
        "Action": [
          "elasticmapreduce:PutAutoTerminationPolicy",
          "elasticmapreduce:GetAutoTerminationPolicy",
          "elasticmapreduce:RemoveAutoTerminationPolicy"
        ],
        "Resource": "your-resources"
      }
    }
  2. Para todas as versões do Amazon EMR, certifique-se de que o processo do coletor de métricas esteja em execução. O processo do coletor de métricas coleta as métricas para determinar o encerramento automático.

    Para verificar processo do coletor de métricas, execute os seguintes comandos:

    ps -ef|grep metrics-collector

    -ou-

    systemctl status metricscollector.service

    Para mais informações, consulte Como reinicio um serviço no Amazon EMR?

  3. Veja as métricas do CloudWatch do cluster do Amazon EMR. Certifique-se de que a métrica AutoTerminationClusterIdle do CloudWatch exiba 1 no cluster. Se a métrica exibir 1, o cluster se qualificará para encerramento automático. Se a métrica exibir 0, o cluster está ativo e não se qualifica para encerramento automático.

  4. Para versões do Amazon EMR anteriores à 6.15.0, verifique se você substituiu a versão padrão do Java no cluster do EMR. Se você substituir a versão padrão do Java usada no Amazon EMR, o encerramento automático não funcionará conforme o esperado.

    Para resolver esse problema, execute o script a seguir na instância primária de um cluster em execução ou como uma ação de bootstrap em um novo cluster:

    #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
AWS OFICIAL
AWS OFICIALAtualizada há um mês