Como cancelar uma etapa do Amazon EMR?

2 minuto de leitura
0

Estou tentando cancelar uma etapa do Amazon EMR. Quando executo o comando cancel-steps, recebo o seguinte erro: “Não é possível cancelar a etapa. Ela já está EM EXECUÇÃO.”

Breve descrição

Esse erro afeta as versões 5.27.x e anteriores do Amazon EMR. Nessas versões de lançamento, o comando cancel-steps cancela somente as etapas pendentes. Para cancelar uma etapa em execução, elimine o ID do aplicativo (para etapas do YARN) ou o ID do processo (para etapas que não sejam do YARN).

Nas versões 5.28.0 e posteriores do Amazon EMR, você pode usar cancel-steps para cancelar as etapas pendentes e em execução. Para obter mais informações, consulte Trabalhar com etapas usando a CLI e o console da AWS.

Observação: se você receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Resolução

Use um dos métodos a seguir para cancelar as etapas em execução nas versões 5.27.x e anteriores do Amazon EMR.

Cancelar aplicativos do YARN

1.    Conecte-se ao nó principal usando SSH.

2.    Para encontrar o ID do aplicativo da etapa, execute o comando a seguir para listar todos os aplicativos em execução.

yarn application -list

3.    Execute o comando a seguir para encerrar o aplicativo. Substitua application_id pelo ID do seu aplicativo, como “application_1505786029486_002.”

**Observação:**Esse comando elimina todas as etapas pendentes na fila.

yarn application -kill application_id

Cancelar aplicativos que não sejam do Yarn

1.    Conecte-se ao nó principal usando SSH.

2.    Execute o comando a seguir para encerrar o aplicativo (pid). No exemplo a seguir, substitua step_id pelo seu identificador de etapa, como s-Y9XXXXXXAPMD.

ps -ef |grep -i step_id

No exemplo de saída a seguir, o ID do 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.    Execute o comando a seguir para encerrar o processo. Substitua 2366 pelo identificador do processo para sua etapa.

**Observação:**Esse comando elimina todas as etapas pendentes na fila.

kill -9 2366

O status da etapa muda de Em execução para Falhou.


Informações relacionadas

Como cancelar etapas

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos