Debuggen von fehlgeschlagenen Spark-Aufträgen mit dem Azure-Toolkit für IntelliJ (Vorschau)

Dieser Artikel enthält eine ausführliche Anleitung zur Verwendung der HDInsight-Tools im Azure-Toolkit für IntelliJ zum Ausführen von Anwendungen für das Debuggen von fehlgeschlagenen Spark-Aufträgen.

Voraussetzungen

Erstellen eines Projekts mit Debugvorlage

Erstellen Sie ein Spark 2.3.2-Projekt, um das Debuggen fortzusetzen. Verwenden Sie die Beispieldatei für das Debuggen von Aufgaben in diesem Dokument.

  1. Öffnen Sie IntelliJ IDEA. Öffnen Sie das Fenster Neues Projekt.

    a. Wählen Sie im linken Bereich Azure Spark/HDInsight aus.

    b. Wählen Sie im Hauptfenster Spark-Projekt mit Beispielen zum Debuggen von Fehleraufgaben (Vorschau) (Scala) aus.

    Intellij Create a debug project.

    c. Wählen Sie Weiter aus.

  2. Führen Sie im Fenster New Project (Neues Projekt) die folgenden Schritte aus:

    Intellij New Project select Spark version.

    a. Geben Sie einen Projektnamen und -speicherort an.

    b. Wählen Sie in der Dropdownliste Project SDK (Projekt-SDK) Java 1.8 für den Spark 2.3.2-Cluster aus.

    c. Wählen Sie in der Dropdown-Liste Spark-Version den Eintrag Spark 2.3.2 (Scala 2.11.8) aus.

    d. Wählen Sie Fertig stellen aus.

  3. Wählen Sie src>main>scala aus, um Ihren Code im Projekt zu öffnen. In diesem Beispiel wird das Skript AgeMean_Div() verwendet.

Ausführen einer Spark Scala- bzw. einer Java-Anwendung in einem HDInsight-Cluster

Erstellen Sie eine Spark Scala- bzw. Java-Anwendung, und führen Sie die Anwendung dann in einem Spark-Cluster aus, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie auf Konfiguration hinzufügen, um das Fenster Run/Debug Configurations (Konfigurationen ausführen/debuggen) zu öffnen.

    HDI Intellij Add configuration.

  2. Wählen Sie im Dialogfeld Run/Debug Configurations (Konfigurationen ausführen/debuggen) das Plussymbol (+) aus. Wählen Sie dann die Option Apache Spark auf HDInsight aus.

    Intellij Add new configuration.

  3. Wechseln Sie zur Registerkarte Remotely Run in Cluster (Im Cluster remote ausführen). Geben Sie Informationen für Name, Spark cluster und Main class name (Name der main-Klasse) ein. Unseren Tools unterstützen das Debuggen mit Executors. Der Standardwert von numExectors ist 5. Es empfiehlt sich, hierfür keinen höheren Wert als 3 festzulegen. Wenn Sie die Laufzeit verkürzen möchten, können Sie spark.yarn.maxAppAttempts zu Job Configurations (Auftragskonfigurationen) hinzufügen und den Wert auf 1 festlegen. Klicken Sie auf OK, um die Konfiguration zu speichern.

    Intellij Run debug configurations new.

  4. Die Konfiguration wird jetzt unter dem von Ihnen angegebenen Namen gespeichert. Um die Konfigurationsdetails anzuzeigen, wählen Sie den Konfigurationsnamen aus. Um Änderungen vorzunehmen, wählen Sie Edit Configurations (Konfigurationen bearbeiten) aus.

  5. Nachdem Sie die Konfigurationseinstellungen abgeschlossen haben, können Sie das Projekt für den Remotecluster ausführen.

    Intellij Debug Remote Spark Job Remote run button.

  6. Sie können die Anwendungs-ID im Ausgabefenster überprüfen.

    Intellij Debug Remote Spark Job Remote run result.

Herunterladen des Profils des fehlgeschlagenen Auftrags

Wenn die Auftragsübermittlung fehlschlägt, können Sie das Profil des fehlgeschlagenen Auftrags zum weiteren Debuggen auf den lokalen Computer herunterladen.

  1. Öffnen Sie den Microsoft Azure Storage-Explorer, suchen Sie das HDInsight-Konto des Clusters mit dem fehlgeschlagenen Auftrag, und laden Sie die Ressourcen des fehlgeschlagenen Auftrags vom entsprechenden Speicherort (\hdp\spark2-events\.spark-failures\<Anwendungs-ID>) in einen lokalen Ordner herunter. Im Fenster Aktivitäten wird der Downloadfortschritt angezeigt.

    Azure Storage Explorer download failure.

    Azure Storage Explorer download success.

Konfigurieren der lokalen Debugumgebung und Debuggen eines Fehlers

  1. Öffnen Sie das ursprüngliche Projekt, oder erstellen Sie ein neues Projekt, und ordnen Sie es dem ursprünglichen Quellcode zu. Derzeit wird das Debuggen von Fehlern nur in der Spark 2.3.2-Version unterstützt.

  2. Erstellen Sie in IntelliJ IDEA unter Spark Failure Debug (Debuggen von Spark-Fehlern) eine Konfigurationsdatei, und wählen Sie für das Feld Spark Job Failure Context location (Speicherort des Fehlerkontexts für den Spark-Auftrag) die FTD-Datei für die zuvor heruntergeladenen Ressourcen des fehlgeschlagenen Auftrags aus.

    crete failure configuration.

  3. Klicken Sie auf der Symbolleiste auf die Schaltfläche für lokales Ausführen, und der Fehler wird im Ausführungsfenster angezeigt.

    run-failure-configuration1.

    run-failure-configuration2.

  4. Legen Sie den im Protokoll angegebenen Haltepunkt fest, und klicken Sie dann auf die Schaltfläche für das lokale Debuggen, um das lokale Debuggen wie in normalen Scala-/Java-Projekten in IntelliJ auszuführen.

  5. Wenn das Projekt nach dem Debuggen erfolgreich abgeschlossen wurde, können Sie den fehlgeschlagenen Auftrag erneut an Ihr Spark-Projekt im HDInsight-Cluster übermitteln.

Nächste Schritte

Szenarien

Erstellen und Ausführen von Anwendungen

Tools und Erweiterungen

Ressourcen verwalten