Verbessertes Schritt-Debuggen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verbessertes Schritt-Debuggen

Wenn ein Amazon-EMR-Schritt fehlschlägt und Sie Ihre Arbeit mit der Schritt-API-Operation mit einem AMI, Version 5.x oder höher, gesendet haben, kann Amazon EMR in einigen Fällen die Ursache des Schrittfehlers ermitteln und zusammen mit den Namen der entsprechenden Protokolldatei und einem Teil der Anwendungs-Stack-Trace-Informationen über die API zurückgeben. Die folgenden Fehler können identifiziert werden:

  • Ein üblicher Hadoop-Fehler, wie z. B. das Ausgabeverzeichnis ist bereits vorhanden, das Eingabeverzeichnis ist nicht vorhanden oder für eine Anwendung ist nicht mehr genügend Speicherplatz vorhanden.

  • Java-Fehler, wie z. B. eine Anwendung, die mit einer inkompatiblen Version von Java kompiliert und mit einer Hauptklasse ausgeführt wurde, die nicht gefunden wird.

  • Ein Problem mit dem Zugriff auf Objekte, die in Amazon S3 gespeichert sind.

Diese Informationen sind mithilfe der ListStepsAPI-Operationen DescribeStepund verfügbar. Das FailureDetailsFeld der von diesen Operationen StepSummaryzurückgegebenen. Verwenden Sie die AWS CLI, die Konsole oder das AWS SDK, um auf die FailureDetails Informationen zuzugreifen.

Anmerkung

Wir haben die Amazon-EMR-Konsole neu gestaltet, um sie benutzerfreundlicher zu gestalten. Unter Amazon EMR-Konsole erfahren Sie mehr über die Unterschiede zwischen der alten und der neuen Konsolenerfahrung.

New console

Die neue Amazon-EMR-Konsole bietet kein schrittweises Debugging. Mit den folgenden Schritten können Sie jedoch Details zur Clusterbeendigung anzeigen.

So zeigen Sie Fehlerdetails in der neuen Konsole an
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/emr.

  2. Wählen Sie im linken Navigationsbereich unter EMR in EC2 die Option Cluster und dann den Cluster aus, den Sie anzeigen möchten.

  3. Notieren Sie sich den Statuswert im Abschnitt Zusammenfassung der Cluster-Detailseite. Wenn der Status Mit Fehlern beendet lautet, bewegen Sie den Mauszeiger über den Text, um Details zum Clusterausfall anzuzeigen.

Old console
So zeigen Sie Fehlerdetails in der alten Konsole an
  1. Navigieren Sie zur neuen Amazon-EMR-Konsole und wählen Sie in der Seitennavigation die Option Zur alten Konsole wechseln aus. Weitere Informationen darüber, was Sie erwartet, wenn Sie zur alten Konsole wechseln, finden Sie unter Verwenden der alten Konsole.

  2. Wählen Sie die Option Cluster List (Clusterliste) und wählen Sie einen Cluster aus.

  3. Wählen Sie das Pfeilsymbol neben den einzelnen Schritten, um weitere Details anzuzeigen. Wenn der Schritt fehlgeschlagen ist und Amazon EMR die Ursache ermitteln kann, sehen Sie die Fehlerdetails.

CLI
Um Fehlerdetails anzuzeigen, verwenden Sie den AWS CLI
  • Verwenden Sie den describe-step Befehl AWS CLI, um Fehlerdetails für einen Schritt mit dem abzurufen.

    aws emr describe-step --cluster-id j-1K48XXXXXHCB --step-id s-3QM0XXXXXM1W

    Die Ausgabe sieht etwa folgendermaßen aus:

    { "Step": { "Status": { "FailureDetails": { "LogFile": "s3://myBucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz", "Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://myBucket/logs/beta already exists", "Reason": "Output directory already exists." }, "Timeline": { "EndDateTime": 1469034209.143, "CreationDateTime": 1469033847.105, "StartDateTime": 1469034202.881 }, "State": "FAILED", "StateChangeReason": {} }, "Config": { "Args": [ "wordcount", "s3://myBucket/input/input.txt", "s3://myBucket/logs/beta" ], "Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar", "Properties": {} }, "Id": "s-3QM0XXXXXM1W", "ActionOnFailure": "CONTINUE", "Name": "ExampleJob" } }