¿Cómo puedo cancelar un paso de Amazon EMR?

2 minutos de lectura
0

Estoy intentando cancelar un paso de Amazon EMR. Cuando ejecuto el comando cancel-steps, obtengo el siguiente error: «No se puede cancelar el paso. Ya se está EJECUTANDO.»

Descripción breve

Este error afecta a las versiones 5.27.x y anteriores de Amazon EMR. En estas versiones, el comando cancel-steps cancela solo los pasos pendientes. Para cancelar un paso en ejecución, elimine el ID de la aplicación (para pasos YARN) o el ID del proceso (para pasos que no sean YARN).

En las versiones 5.28.0 y posteriores de Amazon EMR, puede utilizar cancel-steps para cancelar tanto los pasos pendientes como los que estén en ejecución. Para más información, consulte Trabajar con pasos utilizando la CLI y la consola de AWS.

**Nota:**Si recibe errores al ejecutar los comandos de AWS CLI, asegúrese de utilizar la versión más reciente de AWS CLI.

Solución

Utilice uno de los métodos siguientes para cancelar los pasos en ejecución en las versiones 5.27.x y anteriores de Amazon EMR.

Cancelar aplicaciones de YARN

1.    Conéctese al nodo maestro mediante SSH.

2.    Para encontrar el ID de aplicación del paso, ejecute el siguiente comando para listar todas las aplicaciones en ejecución.

yarn application -list

3.    Ejecute el siguiente comando para detener la aplicación. Sustituya application_id por el ID de su aplicación, por ejemplo "application_1505786029486_002".

Nota: Este comando interrumpe todos los pasos pendientes en la cola.

yarn application -kill application_id

Cancelar aplicaciones que no sean de YARN

1.    Conéctese al nodo maestro mediante SSH.

2.    Ejecute el siguiente comando para obtener el ID del proceso (pid). En el siguiente ejemplo, sustituya step_id por su identificador de paso, por ejemplo s-Y9XXXXXXAPMD.

ps -ef |grep -i step_id

En el siguiente ejemplo de resultado, el ID del proceso es 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.    Ejecute el siguiente comando para finalizar el proceso. Sustituya 2366 por el identificador de proceso de su paso.

Nota: Este comando interrumpe todos los pasos pendientes en la cola.

kill -9 2366

El estado del paso cambia de Ejecutando a Falló.


Información relacionada

Cancelar pasos

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año