Salta al contenuto

Perché il mio cluster Amazon EMR viene terminato?

5 minuti di lettura
0

Il mio cluster Amazon EMR è stato terminato in modo imprevisto.

Risoluzione

Amazon EMR archivia i log del cluster in un bucket Amazon Simple Storage Service (Amazon S3) specificato all'avvio del cluster. Ad esempio, s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/.

Per identificare il motivo per cui un cluster Amazon EMR è stato terminato, consulta i log di provisioning di Amazon EMR archiviati in Amazon S3.

Errore "SHUTDOWN_STEP_FAILED (USER_ERROR)"

Quando invii un processo della fase in un cluster Amazon EMR, puoi specificare il comportamento di errore della fase nel parametro ActionOnFailure. Se selezioni TERMINATE_CLUSTER o TERMINATE_JOB_FLOW per il parametro ActionOnFailure, il cluster Amazon EMR termina e potresti ricevere il seguente messaggio di errore da AWS CloudTrail:

"{ "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." }"

Per evitare questo errore, utilizza l'opzione CONTINUE o CANCEL_AND_WAIT nel parametro ActionOnFailure quando invii il processo della fase.

Per ulteriori informazioni, consulta StepConfig.

Errore "NO_SLAVES_LEFT (SYSTEM_ERROR)"

Ricevi l'errore "No_SLAVES_LEFT" quando si verificano le seguenti condizioni:

  • Hai disattivato la protezione dalle terminazioni nel cluster Amazon EMR.
  • Tutti i nodi principali superano la capacità di archiviazione su disco come specificato da una soglia di utilizzo massima nella classificazione di configurazione yarn-site. La soglia di utilizzo massima predefinita è 90%.
  • L'istanza CORE è un'istanza spot e l'istanza spot è TERMINATED_BY_SPOT_DUE_TO_NO_CAPACITY.
    Per ulteriori informazioni sulla terminazione delle istanze spot, consulta Perché Amazon EC2 ha terminato la mia istanza spot?

Per risolvere l'errore, intraprendi le seguenti azioni:

Errore "502 Bad Gateway"

Quando i sistemi interni di Amazon EMR non riescono a raggiungere il nodo primario per un periodo di tempo, viene visualizzato l'errore "502 Bad Gateway". Se disattivi la protezione dalle terminazioni, Amazon EMR interrompe il cluster.

Quando il servizio instance-controller non è attivo, controlla i log di instance-controller e i log di stato dell'istanza più recenti. Se l'output standard di instance-controller mostra che una memoria insufficiente ha interrotto il servizio, il nodo primario non ha sufficiente memoria.

Di seguito è riportato un messaggio di errore di esempio dal log dello stato dell'istanza:

# 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

Per evitare l'errore precedente, avvia un cluster Amazon EMR con un tipo di istanza più grande per sfruttare più memoria per i requisiti del cluster. Inoltre, libera spazio su disco per evitare interruzioni della memoria nei cluster di lunga durata. Per ulteriori informazioni, consulta Come posso risolvere gli errori relativi all’errore del nodo primario con l'errore "502 Bad Gateway" o "504 Gateway Time-out" in Amazon EMR?

Errore "KMS_ISSUE (USER_ERROR)"

Quando utilizzi una configurazione di sicurezza di Amazon EMR per crittografare un dispositivo root e i volumi di archiviazione Amazon EBS, il ruolo deve avere le autorizzazioni appropriate. Se mancano le autorizzazioni necessarie, ricevi il seguente messaggio di errore in 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."

Per evitare l'errore precedente, assicurati che le configurazioni di sicurezza utilizzate per crittografare il dispositivo root e i volumi di archiviazione Amazon EBS abbiano le autorizzazioni necessarie. Assicurati inoltre che il ruolo di servizio Amazon EMR (EMR_DefaultRole_V2) abbia le autorizzazioni per utilizzare la chiave del Servizio AWS di gestione delle chiavi (AWS KMS) specificata.

Errore "Terminated with errors, The master node was terminated by user"

Quando il nodo primario del cluster Amazon EMR si arresta per qualsiasi motivo, il cluster viene terminato con l'errore "The master node was terminated by user".

Ricevi il seguente messaggio di errore in 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
},

Poiché l'arresto dei nodi primari o di tutti i nodi principali di Amazon EMR comporta la chiusura del cluster, non arrestare o riavviare i nodi del cluster.

Nota: i cluster Amazon EMR potrebbero terminare per motivi diversi da quelli descritti in questo articolo. Per ulteriori informazioni, consulta Errori di risorse durante le operazioni del cluster Amazon EMR.

AWS UFFICIALEAggiornata 6 mesi fa