Uma etapa do Amazon EMR ainda está no estado RUNNING, mesmo que a respectiva aplicação Apache Spark ou YARN tenha sido concluída.
Resolução
Use um dos métodos a seguir para resolver o problema.
Valide o status da aplicação YARN e finalize a etapa
Conclua as seguintes etapas:
-
Identifique o applicationId do YARN no arquivo stderr dos logs de etapas.
-
Conecte-se ao nó primário usando SSH.
-
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 de aplicação é application_1234567891011_001.
yarn application -status application_id
-ou-
Use o comando YARN a seguir para listar todas as aplicações:
yarn application -list -appStates ALL
-
Verifique a saída do comando anterior para ver o estado da aplicação.
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 até que a aplicação seja concluída ou encerre a aplicação para cancelar a etapa.
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
-
Execute o comando a seguir para encerrar a aplicação. Substitua application_id pelo ID da sua aplicação. Um exemplo de ID de aplicação é application_1234567891011_001.
yarn application -kill application_id
-
Verifique o status da etapa do Amazon EMR novamente após finalizar a aplicação.
Cancele a etapa do Amazon EMR manualmente usando a AWS Command Line Interface (AWS CLI)
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Conclua as seguintes etapas:
-
Use o comando describe-step para visualizar 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
-
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 Etapas de cancelamento ao enviar trabalhos para um cluster do Amazon EMR.