Passer au contenu

Pourquoi mon cluster Amazon EMR est-il résilié ?

Lecture de 5 minute(s)
0

Mon cluster Amazon EMR a été résilié de manière inattendue.

Résolution

Amazon EMR stocke les journaux de cluster dans un compartiment Amazon Simple Storage Service (Amazon S3) que vous spécifiez au lancement du cluster. Par exemple, s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/.

Pour identifier la raison pour laquelle votre cluster Amazon EMR a été résilié, consultez les journaux de provisionnement Amazon EMR stockés dans Amazon S3.

Erreur « SHUTDOWN_STEP_FAILED (USER_ERROR) »

Lorsque vous soumettez une tâche par étapes dans votre cluster Amazon EMR, vous pouvez spécifier le comportement d’échec de l'étape dans le paramètre ActionOnFailure. Si vous sélectionnez TERMINATE_CLUSTER ou TERMINATE_JOB_FLOW pour le paramètre ActionOnFailure, le cluster Amazon EMR est résilié et le message d'erreur suivant provenant d'AWS CloudTrail peut s’afficher :

« { "severity": "ERROR", "actionOnFailure": "TERMINATE_JOB_FLOW", "stepId": "s-2I0G########", "name": "Example Step", "clusterId": "j-2YJ#######", "state": "FAILED", "message": "Step s-2I0G####### (Example Step) in Amazon EMR cluster j-2YJ####### failed at 202#-1#-0# 0#:## UTC." } »

Pour éviter cette erreur, utilisez l'option CONTINUE ou CANCEL_AND_WAIT dans le paramètre ActionOnFailure lorsque vous soumettez la tâche par étapes.

Pour en savoir plus, consultez la section StepConfig.

Erreur « NO_SLAVES_LEFT (SYSTEM_ERROR) »

L'erreur « No_SLAVES_LEFT » s'affiche lorsque les conditions suivantes sont remplies :

  • Vous avez désactivé la protection contre la résiliation dans le cluster Amazon EMR.
  • Tous les nœuds principaux dépassent la capacité de stockage sur disque spécifiée par un seuil d'utilisation maximal dans la classification de configuration du site filaire. Le seuil d'utilisation maximale par défaut est de 90 %.
  • L'instance CORE est une instance Spot, et l'instance Spot est TERMINATED_BY_SPOT_DUE_TO_NO_CAPACITY.
    Pour plus d'informations sur la résiliation d'une instance Spot, consultez la section Pourquoi Amazon EC2 a t-il interrompu mon instance Spot ?

Pour résoudre cette erreur, procédez comme suit :

Erreur « 502 Bad Gateway »

Lorsque les systèmes internes d'Amazon EMR ne peuvent pas atteindre le nœud principal pendant un certain temps, l’erreur « 502 Bad Gateway » s’affiche. Si vous désactivez la protection contre la résiliation, Amazon EMR résilie le cluster.

Lorsque le service du contrôleur d'instance est en panne, consultez les derniers journaux du contrôleur d'instance et les journaux d'état de l'instance. Si la sortie standard du contrôleur d'instance indique qu'une mémoire insuffisante a résilié le service, cela signifie que le nœud principal ne dispose pas d’une mémoire suffisante.

Voici un exemple de message d'erreur extrait du journal d'état de l'instance :

# dump instance controller stdouttail -n 100 /emr/instance-controller/log/instance-controller.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fb46c7c8000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid16110.log
# whats memory usage look like
free -m
              total        used        free      shared  buff/cache   available
Mem:          15661       15346         147           0         167          69
Swap:             0           0           0

Pour éviter l'erreur précédente, lancez un cluster Amazon EMR avec un type d'instance plus élevé afin d'obtenir plus de mémoire pour les besoins de votre cluster. Nettoyez également l'espace disque pour éviter les pannes de mémoire dans les clusters de longue durée. Pour plus d'informations, consultez la section Comment résoudre un échec du nœud principal associé à l'erreur « 502 Bad Gateway » ou « 504 Gateway Time-out » dans Amazon EMR ?

Erreur « KMS_ISSUE (USER_ERROR) »

Lorsque vous utilisez une configuration de sécurité Amazon EMR pour chiffrer un appareil racine Amazon EBS et des volumes de stockage, le rôle doit disposer des autorisations appropriées. Si les autorisations nécessaires sont manquantes, le message d'erreur suivant s'affiche dans AWS CloudTrail :

« The EMR Service Role must have the kms:GenerateDataKey* and kms:ReEncrypt* permission for the KMS key configuration when you enabled EBS encryption by default. You can retrieve that KMS key's ID by using the ec2:GetEbsDefaultKmsKeyId API. »

Pour éviter l'erreur précédente, assurez-vous que les configurations de sécurité utilisées pour chiffrer le périphérique racine et les volumes de stockage Amazon EBS disposent des autorisations nécessaires. Assurez-vous également que le rôle de service Amazon EMR (EMR_DefaultRole_V2) est autorisé à utiliser les clés AWS Key Management Service (AWS KMS) spécifiées.

Erreur « Terminated with errors, The master node was terminated by user »

Lorsque le nœud principal du cluster Amazon EMR s'arrête pour une raison quelconque, le cluster est résilié avec l'erreur : « The master node was terminated by user ».

Le message d'erreur suivant s'affiche dans AWS CloudTrail :

eventTime": "2023-01-18T08:07:02Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StopInstances",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "52.##.##.##",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "instancesSet": {
            "items": [
                {
                    "instanceId": "i-##f6c5###########"
                }
            ]
        },
        "force": false
},

Étant donné que l'arrêt du nœud principal ou de tous les nœuds principaux d'Amazon EMR entraîne la résiliation du cluster, n'arrêtez pas et ne redémarrez pas les nœuds du cluster.

Remarque : Vos clusters Amazon EMR peuvent être résiliés pour d'autres raisons que celles décrites dans cet article. Pour plus d'informations, consultez la section Erreurs liées aux ressources lors des opérations du cluster Amazon EMR.

AWS OFFICIELA mis à jour il y a 2 mois