Perché una fase di Amazon EMR è in esecuzione anche se la mia applicazione su YARN è stata completata?

3 minuti di lettura
0

Una fase di Amazon EMR è ancora nello stato IN ESECUZIONE anche se la rispettiva applicazione Apache Spark o YARN è stata completata.

Risoluzione

Utilizza uno dei seguenti metodi per risolvere il problema:

  • Convalida lo stato della rispettiva applicazione YARN e quindi termina la fase.
  • Annulla l'ID fase manualmente utilizzando l'Interfaccia della linea di comando AWS (AWS CLI).

Convalida lo stato dell'applicazione YARN e quindi termina la fase

1.    Identifica l'applicationId YARN dal file stderr dei log di fase. Per ulteriori informazioni, consulta Come posso risolvere una fase Spark non riuscita in Amazon EMR?

2.    Connettiti al nodo primario utilizzando SSH.

3.    Utilizza il seguente comando YARN per trovare lo stato dell'applicazione YARN. Nel seguente comando di esempio, sostituisci application_id con l'ID della tua applicazione. Un ID di applicazione di esempio è application_1234567891011_001.

yarn application -status application_id

In alternativa, utilizza il seguente comando YARN per elencare tutte le applicazioni:

yarn application -list -appStates ALL

4.    Controlla l'output del comando precedente per verificare lo stato dell'applicazione.

Application-States: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]

Di seguito è riportato un esempio di output di un'applicazione completata correttamente:

Progress : 100%
State : FINISHED
Final-State : SUCCEEDED

Se l'output del comando precedente presenta lo stato FINISHED, FAILED oKILLED, l'applicazione YARN è completata.

Se lo stato dell'applicazione è NEW (Nuova), NEW_SAVING (Nuova in fase di salvataggio), SUBMITTED (Inviata), ACCEPTED (Accettata) o RUNNING (In esecuzione), l'applicazione YARN è ancora in esecuzione. Attendi il completamento dell'applicazione o termina l'applicazione per annullare la fase.

7.    Esegui il seguente comando per terminare l'applicazione. Nel seguente comando di esempio, sostituisci application_id con l'ID della tua applicazione. Un ID di applicazione di esempio è application_1234567891011_001.

yarn application -kill application_id

8.    Controlla nuovamente lo stato della fase di Amazon EMR dopo aver terminato l'applicazione.

Annulla manualmente la fase di Amazon EMR utilizzando AWS CLI

Nota: se ricevi un messaggio di errore durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

1.    Utilizza il comando describe-step per visualizzare lo stato della fase. Nel seguente comando, sostituisci cluster-id e step-id con i valori corretti per il tuo caso d'uso.

aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx

2.    Utilizza il comando cancel-steps per annullare la fase. Nel seguente comando, sostituisci cluster-id e step-id con i valori corretti per il tuo caso d'uso.

aws emr cancel-steps --cluster-id j-xxxxxxxxxxxxx \
--step-ids s-3M8DXXXXXXXXX \
--step-cancellation-option SEND_INTERRUPT

Per ulteriori informazioni, consulta Annullamento delle fasi.


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa