Una fase di Amazon EMR è ancora in esecuzione anche se la rispettiva applicazione Apache Spark o YARN è stata completata.
Risoluzione
Utilizza uno dei seguenti metodi per risolvere questo problema.
Convalida lo stato dell'applicazione YARN e termina la fase
Completa i seguenti passaggi:
-
Identifica l'applicationId YARN dal file stderr dei log della fase.
-
Connettiti al nodo primario tramite SSH.
-
Utilizza il seguente comando YARN per trovare lo stato dell'applicazione YARN. Nell'esempio seguente, sostituisci ad application_id l'ID della tua applicazione. Un esempio di ID dell’applicazione è l'application_1234567891011_001.
yarn application -status application_id
-Oppure-
Utilizza il seguente comando YARN per elencare tutte le applicazioni:
yarn application -list -appStates ALL
-
Controlla l'output del comando precedente per verificare lo stato dell'applicazione.
Se l'output del comando precedente ha gli stati FINISHED, FAILED o KILLED, l'applicazione YARN è completata.
Se lo stato dell'applicazione è NEW, NEW_SAVING, SUBMIDED, ACCEPTED o RUNNING, l'applicazione YARN è ancora in esecuzione. Attendi il completamento dell'applicazione o terminala per annullare la fase.
Di seguito è riportato un esempio di output di un'applicazione completata correttamente:
Progress : 100%
State : FINISHED
Final-State : SUCCEEDED
-
Esegui il seguente comando per terminare l'applicazione. Sostituisci ad application_id l'ID della tua applicazione. Un esempio di ID dell’applicazione è l'application_1234567891011_001.
yarn application -kill application_id
-
Controlla nuovamente lo stato della fase di Amazon EMR dopo aver terminato l'applicazione.
Annulla la fase di Amazon EMR manualmente utilizzando l'interfaccia a riga di comando AWS (AWS CLI)
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia a linea di comando AWS (AWS CLI), consulta la sezione Risoluzione degli errori di AWS CLI. Inoltre, assicurati che la versione di AWS CLI che stai utilizzando sia la più recente.
Completa i seguenti passaggi:
-
Utilizza il comando describe-step per visualizzare lo stato della fase. Nel comando seguente, sostituisci a ** cluster-id ** e ** step-id ** i valori corretti per il tuo caso d'uso.
aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx
-
Utilizza il comando cancel-steps per annullare la fase. Nel comando seguente, sostituisci a ** cluster-id ** e ** step-id ** 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 Annulla fasi quando invii lavoro a un cluster di Amazon EMR.