Come posso annullare una fase Amazon EMR?

2 minuti di lettura
0

Sto cercando di annullare una fase Amazon EMR. Quando eseguo il comando cancel-steps, viene visualizzato il seguente errore: "Impossibile annullare il passaggio. È già IN ESECUZIONE."

Descrizione breve

Questo errore riguarda le versioni 5.27.x e precedenti di Amazon EMR. In queste versioni di rilascio, il comando cancel-steps annulla solo le fasi in sospeso. Per annullare una fase in esecuzione, elimina l'ID dell'applicazione (per le fasi YARN) o l'ID del processo (per le fasi non YARN).

Nelle versioni 5.28.0 e successive di Amazon EMR, puoi utilizzare cancel-steps per annullare sia le fasi in sospeso che quelle in corso. Per ulteriori informazioni, consulta Utilizzo di fasi mediante l'AWS CLI e la console.

Nota: se ricevi errori durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Risoluzione

Utilizza uno dei seguenti metodi per annullare le fasi in esecuzione nelle versioni 5.27.x e precedenti di Amazon EMR.

Annulla le applicazioni YARN

1.    Connettiti al nodo principale tramite SSH.

2.    Per trovare l'ID dell'applicazione della fase, esegui il comando seguente per elencare tutte le applicazioni in esecuzione.

yarn application -list

3.    Esegui il seguente comando per chiudere l'applicazione. Sostituisci application_id con l'ID dell'applicazione, ad esempio "application_1505786029486_002."

Nota: questo comando elimina tutte le fasi in sospeso nella coda.

yarn application -kill application_id

Annulla le applicazioni non YARN

1.    Connettiti al nodo principale tramite SSH.

2.    Esegui il seguente comando per ottenere l'ID del processo (pid). Nell'esempio seguente, sostituisci step_id con il tuo identificatore di fase, ad esempio s-Y9XXXXXXAPMD.

ps -ef |grep -i step_id

Nel seguente output di esempio, l'ID del processo è 2366:

hadoop    2366  4664  0 16:20 ?        00:00:01 /etc/alternatives/jre/bin/java -Xmx1000m -server -XX:OnOutOfMemoryError=kill -9 %p -Dhadoop.log.dir=/mnt/var/log/hado
op/steps/s-2RNURIK9Z2JUH -Dhadoop.log.file=syslog -Dhadoop.home.dir=/usr/lib/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,DRFA -Djava.library.pat
h=:/usr/lib/hadoop-lzo/lib/native:/usr/lib/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/mnt/var/lib/hadoop/st
eps/s-2RNURIK9Z2JUH/tmp -Dhadoop.security.logger=INFO,NullAppender -Dsun.net.inetaddr.ttl=30 org.apache.hadoop.util.RunJar /var/lib/aws/emr/step-runner/hadoop-
jars/command-runner.jar bash -c envsubst < /home/hadoop/truffle_suffle.json.template

3.    Esegui il seguente comando per interrompere il processo. Sostituisci 2366 con l'identificatore del processo per la tua fase.

Nota: questo comando elimina tutte le fasi in sospeso nella coda.

kill -9 2366

Lo stato del cambio di fase passa da In esecuzione a Non riuscito.


Informazioni correlate

Annullamento delle fasi

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa