Teilen über


Debuggen von Apache Spark-Aufträgen, die auf Azure HDInsight ausgeführt werden

In diesem Artikel erfahren Sie, wie Sie Apache Spark-Aufträge nachverfolgen und debuggen, die auf HDInsight-Clustern ausgeführt werden. Debuggen Sie mithilfe der Apache Hadoop YARN UI, der Spark UI und des Spark History-Servers. Sie beginnen einen Spark-Auftrag mit einem Notizbuch, das mit dem Spark-Cluster verfügbar ist, Machine Learning: Predictive Analysis on Food Inspection Data using MLLib. Führen Sie die folgenden Schritte aus, um eine Anwendung nachzuverfolgen, die Sie mit einem anderen Ansatz übermittelt haben, z. B. Spark-Submit.

Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Voraussetzungen

Nachverfolgen einer Anwendung in der YARN-Benutzeroberfläche

  1. Starten Sie die YARN-Benutzeroberfläche. Wählen Sie " Yarn " unter "Cluster-Dashboards" aus.

    Azure-Portal starten YARN-UI.

    Tipp

    Alternativ können Sie die YARN-Benutzeroberfläche auch über die Ambari-Benutzeroberfläche starten. Um die Ambari-Benutzeroberfläche zu starten, wählen Sie "Ambari"-Start unter "Cluster-Dashboards" aus. Navigieren Sie auf der Ambari-Benutzeroberfläche zu YARN>Schnelllinks> der aktiven >.

  2. Da Sie den Spark-Auftrag mit Jupyter-Notizbüchern gestartet haben, hat die Anwendung den Namen remotesparkmagics (der Name für alle Anwendungen, die mit den Notizbüchern gestartet wurden). Klicken Sie auf die Anwendungs-ID für den Anwendungsnamen, um weitere Informationen zum Auftrag abzurufen. Diese Aktion startet die Anwendungsansicht.

    Spark history server Find Spark application ID.

    Für solche Anwendungen, die aus den Jupyter-Notizbüchern gestartet werden, ist der Status immer RUNNING, bis Sie das Notizbuch verlassen.

  3. In der Anwendungsansicht können Sie einen Drilldown ausführen, um die container zu ermitteln, die der Anwendung und den Protokollen (stdout/stderr) zugeordnet sind. Sie können die Spark-Ui auch starten, indem Sie auf die Verknüpfung klicken, die der Nachverfolgungs-URL entspricht, wie unten dargestellt.

    Spark-Verlaufsserver – Herunterladen von Containerprotokollen

Nachverfolgen einer Anwendung in der Spark-Benutzeroberfläche

In der Spark-Benutzeroberfläche können Sie einen Drilldown zu den Spark-Aufträgen ausführen, die von der Anwendung erstellt werden, die Sie zuvor gestartet haben.

  1. Um die Spark-UI zu starten, wählen Sie in der Anwendungsansicht den Link für die Nachverfolgungs-URL aus, wie in der obigen Bildschirmaufnahme gezeigt. Sie können alle Spark-Aufträge sehen, die von der Anwendung gestartet werden, die im Jupyter-Notizbuch ausgeführt wird.

    Spark-Verlaufsserver – Registerkarte „Aufträge“

  2. Wählen Sie die Registerkarte " Executors " aus, um Verarbeitungs- und Speicherinformationen für jeden Executor anzuzeigen. Sie können den Aufrufstapel auch abrufen, indem Sie den Thread-Dump-Link auswählen.

    Spark-Verlaufsserver – Registerkarte „Executors“

  3. Wählen Sie die Registerkarte "Phasen " aus, um die phasen anzuzeigen, die der Anwendung zugeordnet sind.

    Registerkarte Spark History Server Stages.

    Jede Phase kann über mehrere Aufgaben verfügen, für die Sie Ausführungsstatistiken anzeigen können, wie unten dargestellt.

    Stufen-Registerkartendetails des Spark-History-Servers.

  4. Auf der Seite "Phasendetails" können Sie DIE DAG-Visualisierung starten. Erweitern Sie den DAG-Visualisierungslink oben auf der Seite, wie unten dargestellt.

    DAG-Visualisierung der Spark-Phasen anzeigen.

    DAG oder Direct Aclyic Graph stellt die verschiedenen Phasen in der Anwendung dar. Jedes blaue Feld im Diagramm stellt einen Spark-Vorgang dar, der von der Anwendung aufgerufen wird.

  5. Auf der Seite "Phasendetails" können Sie auch die Anwendungszeitachsenansicht starten. Erweitern Sie den Link "Ereigniszeitachse", der sich oben auf der Seite befindet, wie unten dargestellt.

    Spark stages event timeline anzeigen.

    Diese Abbildung zeigt die Spark-Ereignisse in Form einer Zeitachse an. Die Zeitachsenansicht ist auf drei Ebenen verfügbar: über verschiedene Aufträge, innerhalb eines Auftrags und innerhalb einer Phase. Das obige Bild erfasst die Zeitachsenansicht für eine bestimmte Phase.

    Tipp

    Wenn Sie das Kontrollkästchen "Zoomen aktivieren " aktivieren, können Sie in der Zeitachsenansicht nach links und rechts scrollen.

  6. Andere Registerkarten in der Spark-Benutzeroberfläche bieten auch nützliche Informationen zur Spark-Instanz.

    • Registerkarte "Speicher" – Wenn Ihre Anwendung ein RDD erstellt, finden Sie Informationen auf der Registerkarte "Speicher".
    • Registerkarte "Umgebung" – Diese Registerkarte enthält nützliche Informationen zu Ihrer Spark-Instanz, z. B.:
      • Scala-Version
      • Dem Cluster zugeordnetes Ereignisprotokollverzeichnis
      • Anzahl der Executorkerne für die Anwendung

Suchen von Informationen zu abgeschlossenen Aufträgen mit dem Spark History Server

Nachdem ein Auftrag abgeschlossen wurde, werden die Informationen zum Auftrag im Spark History Server beibehalten.

  1. Um den Spark-History-Server zu starten, wählen Sie auf der Seite ÜbersichtSpark-History-Server unter Cluster-Dashboards aus.

    Das Azure-Portal startet den Spark-Verlaufsserver.

    Tipp

    Alternativ können Sie auch die Spark History Server-UI über die Ambari-Benutzeroberfläche starten. Um die Ambari-Benutzeroberfläche zu starten, wählen Sie im Blatt "Übersicht" unter "Cluster-Dashboards" die Option "Ambari home" aus. Navigieren Sie über die Ambari-Benutzeroberfläche zu Spark2>Quick Links>Spark2-Verlaufsserver-Benutzeroberfläche.

  2. Sie sehen alle abgeschlossenen Software-Anwendungen aufgelistet. Wählen Sie eine Anwendungs-ID aus, um in eine Anwendung tiefer einzutauchen und weitere Informationen zu erhalten.

    Spark-Verlaufsserver – abgeschlossene Anwendungen

Siehe auch