Fouten opsporen in Apache Spark-toepassingen in een HDInsight-cluster met Azure Toolkit voor IntelliJ via SSH

In dit artikel vindt u stapsgewijze instructies voor het gebruik van HDInsight Tools in Azure Toolkit for IntelliJ voor het opsporen van fouten in toepassingen op afstand in een HDInsight-cluster.

Vereisten

Een Spark Scala-toepassing maken

  1. Start IntelliJ IDEA en selecteer Create New Project om het venster New Project te openen.

  2. Selecteer Apache Spark/HDInsight in het linkerdeelvenster.

  3. Selecteer Spark-project met voorbeelden (Scala) in het hoofdvenster.

  4. Selecteer in de vervolgkeuzelijst Build tool een van de volgende opties:

    • Maven, voor de ondersteuning van de wizard Scala-project maken.
    • SBT, voor het beheren van de afhankelijkheden en het maken van het Scala-project.

    Intellij Create New Project Spark.

  5. Selecteer Volgende.

  6. Geef in het volgende venster Nieuw project de volgende informatie op:

    Eigenschappen Beschrijving
    Projectnaam Voer een naam in. In deze rondleiding wordt gebruikgemaakt myAppvan .
    Projectlocatie Voer de gewenste locatie in om uw project in op te slaan.
    Project SDK Als dit leeg is, selecteert u Nieuw... en navigeert u naar uw JDK.
    Spark-versie De wizard voor het maken van het project integreert de juiste versie voor Spark SDK en Scala SDK. Selecteer Spark 1.x als de Spark-clusterversie ouder is dan 2.0. Selecteer anders Spark 2.x.. In dit voorbeeld wordt Spark 2.3.0 (Scala 2.11.8) gebruikt.

    Intellij New Project select Spark version.

  7. Selecteer Voltooien. Het kan enkele minuten duren voordat het project beschikbaar wordt. Bekijk de rechterbenedenhoek voor voortgang.

  8. Vouw uw project uit en navigeer naar het belangrijkste>scala-voorbeeld>van src.> Dubbelklik op SparkCore_WasbIOTest.

Lokale uitvoering uitvoeren

  1. Klik in het SparkCore_WasbIOTest-script met de rechtermuisknop op de scripteditor en selecteer vervolgens de optie SparkCore_WasbIOTest uitvoeren om een lokale uitvoering uit te voeren.

  2. Zodra de lokale uitvoering is voltooid, ziet u dat het uitvoerbestand wordt opgeslagen in de huidige standaardgegevens van> projectverkenner.

    Intellij Project local run result.

  3. Onze hulpprogramma's hebben de standaardconfiguratie voor lokale uitvoering automatisch ingesteld wanneer u de lokale uitvoering en lokale foutopsporing uitvoert. Open de configuratie [Spark in HDInsight] XXX in de rechterbovenhoek. U ziet de [Spark in HDInsight]XXX die al is gemaakt onder Apache Spark in HDInsight. Schakel over naar het tabblad Lokaal uitvoeren .

    Intellij Run debug configurations local run.

    • Omgevingsvariabelen: Als u de omgevingsvariabele van het systeem al instelt HADOOP_HOME op C:\WinUtils, kan automatisch worden gedetecteerd dat u deze niet handmatig hoeft toe te voegen.
    • WinUtils.exe Locatie: Als u de omgevingsvariabele van het systeem niet hebt ingesteld, kunt u de locatie vinden door op de knop ervan te klikken.
    • Kies een van de twee opties en ze zijn niet nodig op MacOS en Linux.
  4. U kunt de configuratie ook handmatig instellen voordat u lokale uitvoering en lokale foutopsporing uitvoert. Selecteer in de voorgaande schermopname het plusteken (+). Selecteer vervolgens de optie Apache Spark in HDInsight . Voer informatie in voor Naam, Hoofdklassenaam die u wilt opslaan en klik vervolgens op de knop Lokaal uitvoeren.

Lokale foutopsporing uitvoeren

  1. Open het SparkCore_wasbloTest script en stel onderbrekingspunten in.

  2. Klik met de rechtermuisknop op de scripteditor en selecteer vervolgens de optie Foutopsporing [Spark in HDInsight]XXX om lokale foutopsporing uit te voeren.

Externe uitvoering uitvoeren

  1. Navigeer naar Bewerkingsconfiguraties uitvoeren>.... In dit menu kunt u de configuraties voor externe foutopsporing maken of bewerken.

  2. Selecteer in het dialoogvenster Configuraties uitvoeren /fouten opsporen het plusteken (+). Selecteer vervolgens de optie Apache Spark in HDInsight .

    Intellij Add new configuration.

  3. Schakel over naar extern uitvoeren op het tabblad Cluster . Voer informatie in voor de naam, het Spark-cluster en de naam van de hoofdklasse. Klik vervolgens op Geavanceerde configuratie (externe foutopsporing). Onze hulpprogramma's ondersteunen foutopsporing met executors. De numExectors, de standaardwaarde is 5. U kunt beter niet hoger dan 3 instellen.

    Intellij Run debug configurations.

  4. Selecteer in het gedeelte Geavanceerde configuratie (externe foutopsporing) de optie Externe foutopsporing van Spark inschakelen. Voer de SSH-gebruikersnaam in en voer een wachtwoord in of gebruik een bestand met een persoonlijke sleutel. Als u externe foutopsporing wilt uitvoeren, moet u deze instellen. U hoeft deze niet in te stellen als u alleen externe uitvoering wilt gebruiken.

    Intellij Advanced Configuration enable spark remote debug.

  5. De configuratie wordt nu opgeslagen met de naam die u hebt opgegeven. Als u de configuratiedetails wilt weergeven, selecteert u de configuratienaam. Als u wijzigingen wilt aanbrengen, selecteert u Configuraties bewerken.

  6. Nadat u de configuratie-instellingen hebt voltooid, kunt u het project uitvoeren op het externe cluster of externe foutopsporing uitvoeren.

    Intellij Debug Remote Spark Job Remote run button.

  7. Klik op de knop Verbinding verbreken die de indieningslogboeken niet in het linkerdeelvenster worden weergegeven. Deze wordt echter nog steeds uitgevoerd op de back-end.

    Intellij Debug Remote Spark Job Remote run result.

Externe foutopsporing uitvoeren

  1. Stel belangrijke punten in en klik vervolgens op het pictogram externe foutopsporing . Het verschil met externe inzending is dat SSH-gebruikersnaam en -wachtwoord moeten worden geconfigureerd.

    Intellij Debug Remote Spark Job debug icon.

  2. Wanneer de uitvoering van het programma het onderbrekingspunt bereikt, ziet u een tabblad Stuurprogramma en twee uitvoerderstabbladen in het deelvenster Foutopsporingsprogramma . Selecteer het pictogram Programma hervatten om door te gaan met het uitvoeren van de code, die vervolgens het volgende onderbrekingspunt bereikt. U moet overschakelen naar het juiste tabblad Executor om de doeluitvoerer te vinden om fouten op te sporen. U kunt de uitvoeringslogboeken bekijken op het bijbehorende consoletabblad .

    Intellij Debug Remote Spark Job Debugging tab.

Externe foutopsporing en foutopsporing uitvoeren

  1. Stel twee belangrijke punten in en selecteer vervolgens het pictogram Foutopsporing om het externe foutopsporingsproces te starten.

  2. De code stopt bij het eerste breekpunt en de parameter- en variabelegegevens worden weergegeven in het deelvenster Variabelen .

  3. Selecteer het pictogram Programma hervatten om door te gaan. De code stopt op het tweede punt. De uitzondering wordt opgevangen zoals verwacht.

    Intellij Debug Remote Spark Job throw error.

  4. Selecteer het pictogram Programma hervatten opnieuw. In het hdInsight Spark-indieningsvenster wordt de fout 'taakuitvoering is mislukt' weergegeven.

    Intellij Debug Remote Spark Job Error submission.

  5. Als u de waarde van de variabele dynamisch wilt bijwerken met behulp van de intelliJ-foutopsporingsfunctie, selecteert u de foutopsporing opnieuw. Het deelvenster Variabelen wordt opnieuw weergegeven.

  6. Klik met de rechtermuisknop op het doel op het tabblad Foutopsporing en selecteer Waarde instellen. Voer vervolgens een nieuwe waarde in voor de variabele. Selecteer vervolgens Enter om de waarde op te slaan.

    Intellij Debug Remote Spark Job set value.

  7. Selecteer het pictogram Programma hervatten om door te gaan met het uitvoeren van het programma. Deze keer wordt er geen uitzondering opgetreden. U kunt zien dat het project zonder uitzonderingen wordt uitgevoerd.

    Intellij Debug Remote Spark Job without exception.

Volgende stappen

Scenario's

Toepassingen maken en uitvoeren

Tools en uitbreidingen

Resources beheren