Warum wird ein Amazon EMR-Schritt ausgeführt, obwohl meine Anwendung auf dem YARN abgeschlossen ist?

Lesedauer: 2 Minute
0

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:

  1. Identifiziere die YARN applicationId aus der stderr-Datei für die Schrittprotokolle.

  2. Stelle über SSH eine Verbindung zum Primärknoten her.

  3. 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
  4. Ü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
  5. 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
  6. Ü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:

  1. 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
  2. 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.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 5 Monaten