Salta al contenuto

Come posso risolvere un cluster Amazon EMR che non termina o termina prima del previsto quando utilizzo una policy di terminazione automatica?

3 minuti di lettura
0

Desidero risolvere un cluster Amazon EMR che non termina o termina prima del previsto quando utilizzo una policy di terminazione automatica.

Breve descrizione

Quando crei un cluster Amazon EMR, puoi attivare la policy di terminazione automatica. La policy di terminazione automatica termina il cluster dopo un determinato periodo di inattività.

Nelle versioni di Amazon EMR da 5.34 a 5.36 e 6.4.0 o successive, un cluster è inattivo per i seguenti motivi:

  • Le applicazioni YARN non sono attive.
  • L'utilizzo di HDFS è inferiore al 10%.
  • Le connessioni Amazon EMR Notebook o EMR Studio non sono attive.
  • Le interfacce utente delle applicazioni su cluster non sono in uso.

Nelle versioni di Amazon EMR da 5.30.0 a 5.33.1 e da 6.1.0 a 6.3.0, un cluster è inattivo per i seguenti motivi:

  • Le applicazioni YARN non sono attive.
  • L'utilizzo di HDFS è inferiore al 10%.
  • I processi Cluster Spark non sono attivi.

Risoluzione

Per risolvere un cluster Amazon EMR che non termina o termina prima del previsto quando si utilizza una policy di terminazione automatica, completa i passaggi seguenti:

  1. Conferma che il ruolo del profilo dell'istanza Amazon Elastic Compute Cloud (Amazon EC2) EMR_EC2_DefaultRole disponga delle seguenti autorizzazioni. Se il ruolo del profilo dell'istanza non dispone delle seguenti autorizzazioni, il cluster rimane attivo dopo aver raggiunto il periodo di timeout di inattività.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowAutoTerminationPolicyActions",
        "Effect": "Allow",
        "Action": [
          "elasticmapreduce:PutAutoTerminationPolicy",
          "elasticmapreduce:GetAutoTerminationPolicy",
          "elasticmapreduce:RemoveAutoTerminationPolicy"
        ],
        "Resource": "your-resources"
      }
    }
  2. Per tutte le versioni di Amazon EMR, assicurati che il processo metrics-collector sia in esecuzione. Il processo metrics-collector raccoglie le metriche per determinare la terminazione automatica.

    Per controllare il processo metrics-collector, esegui i seguenti comandi:

    ps -ef|grep metrics-collector

    oppure

    systemctl status metricscollector.service

    Per ulteriori informazioni, consulta Come faccio a riavviare un servizio in Amazon EMR?

  3. Visualizza le metriche CloudWatch del cluster Amazon EMR. Assicurati che la metrica CloudWatch AutoTerminationClusterIdle indichi 1 nel cluster. Se la metrica indica 1, il cluster è idoneo per la terminazione automatica. Se la metrica indica 0, il cluster è attivo e non è idoneo per la terminazione automatica.

  4. Per le versioni di Amazon EMR precedenti alla 6.15.0, controlla se hai sovrascritto la versione Java predefinita nel cluster EMR. Se sostituisci la versione Java predefinita utilizzata in Amazon EMR, la terminazione automatica non funziona come previsto.

    Per risolvere questo problema, esegui il seguente script sull'istanza primaria di un cluster in esecuzione o come operazione di bootstrap su un nuovo 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 UFFICIALEAggiornata un anno fa