Lezen in het Engels

Delen via


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 ondersteuning van de wizards voor het aanmaken van Scala-projecten.
    • SBT, voor het beheren van de afhankelijkheden en het bouwen van het Scala-project.

    IntelliJ Nieuwe project spark maken.

  5. Selecteer Volgende.

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

    Eigenschap Beschrijving
    Projectnaam Voer een naam in. In deze rondleiding wordt gebruikgemaakt van myApp.
    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. Anders selecteer Spark 2.x.. In dit voorbeeld wordt Spark 2.3.0 (Scala 2.11.8) gebruikt.

    IntelliJ Nieuw Project selecteer Spark-versie.

  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 src>main>scala>sample. Dubbelklik op SparkCore_WasbIOTest.

Lokale run 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 uw huidige projectverkenner onder data>default.

    Resultaat van lokale uitvoering in IntelliJ Project.

  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 .

    Lokale uitvoering van foutopsporingsconfiguraties uitvoeren in IntelliJ.

    • 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 in 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.

Voer op afstand uit

  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 Nieuwe configuratie toevoegen.

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

    Debugconfiguraties uitvoeren in IntelliJ.

  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 schakelt externe spark-foutopsporing in.

  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 Afstandsbediening knop.

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

    IntelliJ Foutopsporing op Afstand Spark Taak Resultaat van Op Afstand Uitvoeren.

Externe foutopsporing uitvoeren

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

    IntelliJ debugpictogram voor Externe Spark-taak.

  2. Wanneer de uitvoering van het programma het onderbrekingspunt bereikt, ziet u een tabblad Stuurprogramma en twee uitvoerderstabbladen in het deelvenster Foutopsporingsprogramma . Selecteer het Programma hervatten pictogram om door te gaan met het uitvoeren van de code, die vervolgens het eerstvolgende 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 Tab voor het foutopsporen van externe Spark-taken.

Voer externe debugging en bugfixing uit

  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-debuggen van externe Spark-taak geeft foutmelding.

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

    Fout bij het indienen van een externe Spark-taak debuggen in IntelliJ.

  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 foutenopsporing op afstand Spark-taak stelt waarde in.

  7. Selecteer het pictogram Programma hervatten om het programma voort te zetten. Deze keer wordt er geen uitzondering gevangen. U kunt zien dat het project zonder uitzonderingen wordt uitgevoerd.

    Debuggen van Op Afstand Spark-taak in IntelliJ zonder problemen.

Volgende stappen

Scenario's

Toepassingen maken en uitvoeren

Tools en uitbreidingen

Resources beheren