Comment puis-je résoudre un cluster Amazon EMR qui ne se résilie pas ou qui se résilie plus tôt que prévu lorsque j'utilise une stratégie de résiliation automatique ?

Lecture de 3 minute(s)
0

Je souhaite résoudre un cluster Amazon EMR qui ne se résilie pas ou qui se résilie plus tôt que prévu lorsque j'utilise une stratégie de résiliation automatique.

Brève description

Lorsque vous créez un cluster Amazon EMR, vous pouvez activer la stratégie de résiliation automatique. La stratégie de terminaison automatique résilie le cluster après une durée d'inactivité spécifique.

Dans les versions 5.34 à 5.36 et 6.4.0 ou ultérieures d'Amazon EMR, un cluster est inactif pour les raisons suivantes :

  • Les applications YARN ne sont pas actives.
  • L'utilisation de HDFS est inférieure à 10 %.
  • Les connexions Amazon EMR Notebook ou EMR Studio ne sont pas actives.
  • Les interfaces utilisateur d’application de cluster ne sont pas utilisées.

Dans les versions 5.30.0 à 5.33.1 et 6.1.0 à 6.3.0 d'Amazon EMR, un cluster est inactif pour les raisons suivantes :

  • Les applications YARN ne sont pas actives.
  • L'utilisation de HDFS est inférieure à 10 %.
  • Les tâches Cluster Spark ne sont pas actives.

Résolution

Pour résoudre un cluster Amazon EMR qui ne se résilie pas ou qui se résilie plus tôt que prévu lorsque vous utilisez une stratégie de résiliation automatique, procédez comme suit :

  1. Vérifiez que le rôle de profil d'instance Amazon Elastic Compute Cloud (Amazon EC2) EMR_EC2_DefaultRole dispose des autorisations suivantes. Si le rôle de profil d'instance ne dispose pas des autorisations suivantes, le cluster demeure actif une fois le délai d'inactivité atteint.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "AllowAutoTerminationPolicyActions",
        "Effect": "Allow",
        "Action": [
          "elasticmapreduce:PutAutoTerminationPolicy",
          "elasticmapreduce:GetAutoTerminationPolicy",
          "elasticmapreduce:RemoveAutoTerminationPolicy"
        ],
        "Resource": "your-resources"
      }
    }
  2. Pour toutes les versions d'Amazon EMR, assurez-vous que le processus metrics-collector est en cours d'exécution. Le processus metrics-collector collecte les métriques pour déterminer la résiliation automatique.

    Pour vérifier le processus metrics-collector, exécutez les commandes suivantes :

    ps -ef|grep metrics-collector

    -ou-

    systemctl status metricscollector.service

    Pour plus d'informations, consultez la section Comment puis-je redémarrer un service dans Amazon EMR ?

  3. Consultez les métriques CloudWatch du cluster Amazon EMR. Assurez-vous que la métrique CloudWatch AutoTerminationClusterIdle indique 1 dans le cluster. Si la métrique indique 1, le cluster est éligible à la résiliation automatique. Si la métrique indique 0, cela signifie que le cluster est actif et n’est pas éligible à la résiliation automatique.

  4. Pour les versions d'Amazon EMR antérieures à la version 6.15.0, vérifiez si vous avez remplacé la version Java par défaut sur le cluster EMR. Si vous remplacez la version de Java par défaut utilisée dans Amazon EMR, la résiliation automatique ne fonctionnera pas comme prévu.

    Pour résoudre ce problème, exécutez le script suivant sur l'instance principale d'un cluster en cours d'exécution ou en tant qu'action d’amorçage sur un nouveau 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 OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois