Ein Amazon EMR-Schritt befindet sich immer noch im Status RUNNING, obwohl die entsprechende Apache Spark- oder YARN-Anwendung abgeschlossen ist.
Lösung
Verwende eine der folgenden Methoden, um das Problem zu lösen.
Status der YARN-Anwendung validieren und dann den Schritt beenden
Führe die folgenden Schritte aus:
-
Identifiziere die YARN applicationId aus der stderr-Datei für die Schrittprotokolle.
-
Stelle über SSH eine Verbindung zum Primärknoten her.
-
Verwende den folgenden YARN-Befehl, um den Status der YARN-Anwendung zu ermitteln. Ersetze im folgenden Beispiel application_id durch deine Anwendungs-ID. Eine Beispielanwendungs-ID ist application_1234567891011_001.
yarn application -status application_id
-oder-
Verwende den folgenden YARN-Befehl, um alle Anwendungen aufzulisten:
yarn application -list -appStates ALL
-
Überprüfe die Ausgabe des vorherigen Befehls auf den Status der Anwendung.
Wenn die Ausgabe des vorherigen Befehls die Status FINISHED, FAILED oder KILLEDhat, ist die YARN-Anwendung abgeschlossen.
Wenn der Anwendungsstatus NEW, NEW_SAVING, SUBMITTED, ACCEPTED oder RUNNING lautet, wird die YARN-Anwendung immer noch ausgeführt. Warte, bis die Anwendung abgeschlossen ist, oder beende die Anwendung, um den Schritt abzubrechen.
Das Folgende ist eine Beispielausgabe einer Anwendung, die erfolgreich abgeschlossen wurde:
Progress : 100%
State : FINISHED
Final-State : SUCCEEDED
-
Führe den folgenden Befehl aus, um die Anwendung zu beenden. Ersetze application_id durch deine Anwendungs-ID. Eine Beispielanwendungs-ID ist application_1234567891011_001.
yarn application -kill application_id
-
Überprüfe den Status des Amazon EMR-Schritts erneut, nachdem du die Anwendung beendet hast.
Den Amazon EMR-Schritt manuell mithilfe der AWS Command Line Interface (AWS CLI) abbrechen
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Führe die folgenden Schritte aus:
-
Verwende den Befehl describe-step, um den Status des Schritts anzuzeigen. Ersetze im folgenden Befehl cluster-id und step-id durch die richtigen Werte für deinen Anwendungsfall.
aws emr describe-step --cluster-id j-xxxxxxxxxxxxx --step-ids s-xxxxxxxx
-
Verwende den Befehl cancel-steps, um den Schritt abzubrechen. Ersetze im folgenden Befehl cluster-id und step-id durch die richtigen Werte für deinen Anwendungsfall.
aws emr cancel-steps --cluster-id j-xxxxxxxxxxxxx \
--step-ids s-3M8DXXXXXXXXX \
--step-cancellation-option SEND_INTERRUPT
Weitere Informationen findest du unter Schritte abbrechen, wenn du Arbeit an einen Amazon EMR-Cluster sendest.