Como cancelar uma etapa do Amazon EMR?
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
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há um ano