Uma etapa do Amazon EMR ainda está em execução, mesmo que a respectiva aplicação Apache Spark ou YARN tenha sido concluída.
Resolução
Use um dos seguintes métodos para resolver o problema:
- Valide o status da respectiva aplicação YARN e, em seguida, finalize a etapa.
- Cancele o ID da etapa manualmente usando a AWS Command Line Interface (AWS CLI).
Validar o status da aplicação YARN e finalizar a etapa
1. Identifique o applicationId YARN a partir do arquivo stderr dos logs de etapas. Para obter mais informações, consulte Como soluciono uma etapa que falhou no Amazon EMR?
2. Connect to the primary node using SSH (Conectar-se ao nó primário usando SSH).
3. Use o comando YARN a seguir para encontrar o estado da aplicação YARN. No comando de exemplo a seguir, substitua application_id pelo ID da aplicação. Um exemplo de ID aplicação é application_1234567891011_001.
yarn application -status application_id
Ou use o seguinte comando YARN para listar todas as aplicações:
yarn application -list -appStates ALL
4. Verifique o estado da aplicação na saída do comando anterior.
Application-States: [NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED]
Veja a seguir um exemplo de saída de uma aplicação que foi concluída com êxito:
Progress : 100%
State : FINISHED
Final-State : SUCCEEDED
Se a saída do comando anterior tiver os estados FINISHED, FAILED ou KILLED, a aplicação YARN será concluída.
Se o status da aplicação for NEW, NEW_SAVING, SUBMITTED, ACCEPTED ou RUNNING, a aplicação YARN ainda estará em execução. Aguarde a conclusão da inscrição ou encerre a aplicação para cancelar a etapa.
7. Execute o comando a seguir para finalizar a aplicação. No comando de exemplo a seguir, substitua application_id pelo ID da aplicação. Um exemplo de ID aplicação é application_1234567891011_001.
yarn application -kill application_id
8. Verifique o status da etapa do Amazon EMR novamente depois de encerrar a aplicação.
Cancelar a etapa do Amazon EMR manualmente usando a AWS CLI
Observação: se receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.
1. Use o comando describe-step para ver o status da etapa. No comando a seguir, substitua cluster-id e step-id pelos valores corretos para seu caso de uso.
aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx
2. Use o comando cancel-steps para cancelar a etapa. No comando a seguir, substitua cluster-id e step-id pelos valores corretos para seu caso de uso.
aws emr cancel-steps --cluster-id j-xxxxxxxxxxxxx \
--step-ids s-3M8DXXXXXXXXX \
--step-cancellation-option SEND_INTERRUPT
Para obter mais informações, consulte Canceling steps (Cancelar etapas).