Felsöka Apache Spark-program i ett HDInsight-kluster med Azure Toolkit for IntelliJ via SSH

Den här artikeln innehåller stegvis vägledning om hur du använder HDInsight Tools i Azure Toolkit for IntelliJ för att fjärrfelsöka program i ett HDInsight-kluster.

Förutsättningar

Skapa ett Spark Scala-program

  1. Starta IntelliJ IDEA och välj Skapa nytt projekt för att öppna fönstret Nytt projekt.

  2. Välj Apache Spark/HDInsight i det vänstra fönstret.

  3. Välj Spark-projekt med exempel (Scala) i huvudfönstret.

  4. Från listrutan Byggverktyg väljer du något av följande:

    • Maven för guidestöd när du skapar Scala-projekt.
    • SBT för att hantera beroenden när du skapar Scala-projektet.

    Intellij Create New Project Spark.

  5. Välj Nästa.

  6. I nästa nytt projektfönster anger du följande information:

    Property beskrivning
    Projektnamn Ange ett namn. Den här genomgången använder myApp.
    Projektplats Ange önskad plats för att spara projektet.
    Projekt-SDK Om det är tomt väljer du Nytt... och navigerar till din JDK.
    Spark-version Skapandeguiden integrerar rätt version för Spark SDK och Scala SDK. Om Sparks klusterversion är äldre än 2.0 väljer du Spark 1.x. Annars väljer du Spark 2.x.. I det här exemplet används Spark 2.3.0 (Scala 2.11.8).

    Intellij New Project select Spark version.

  7. Välj Slutför. Det kan ta några minuter innan projektet blir tillgängligt. Titta på det nedre högra hörnet för förlopp.

  8. Expandera projektet och navigera till src>main>scala-exemplet.> Dubbelklicka på SparkCore_WasbIOTest.

Utföra lokal körning

  1. I skriptet SparkCore_WasbIOTest högerklickar du på skriptredigeraren och väljer sedan alternativet Kör "SparkCore_WasbIOTest" för att utföra lokal körning.

  2. När den lokala körningen har slutförts kan du se att utdatafilen sparas till din aktuella datastandard för projektutforskaren>.

    Intellij Project local run result.

  3. Våra verktyg har konfigurerat standardkonfigurationen för lokal körning automatiskt när du utför den lokala körningen och den lokala felsökningen. Öppna konfigurationen [Spark på HDInsight] XXX i det övre högra hörnet. Du kan se [Spark på HDInsight]XXX som redan har skapats under Apache Spark i HDInsight. Växla till fliken Lokalt kör .

    Intellij Run debug configurations local run.

    • Miljövariabler: Om du redan har angett systemmiljövariabeln HADOOP_HOME till C:\WinUtils kan den automatiskt identifiera att du inte behöver lägga till den manuellt.
    • WinUtils.exe Plats: Om du inte har angett systemmiljövariabeln kan du hitta platsen genom att klicka på dess knapp.
    • Välj bara något av två alternativ och de behövs inte i MacOS och Linux.
  4. Du kan också ange konfigurationen manuellt innan du utför lokal körning och lokal felsökning. I föregående skärmbild väljer du plustecknet (+). Välj sedan alternativet Apache Spark på HDInsight . Ange information för Namn, Huvudklassnamn att spara och klicka sedan på den lokala körningsknappen.

Utföra lokal felsökning

  1. Öppna skriptet SparkCore_wasbloTest och ange brytpunkter.

  2. Högerklicka på skriptredigeraren och välj sedan alternativet Felsök "[Spark på HDInsight]XXX" för att utföra lokal felsökning.

Utföra fjärrkörning

  1. Gå till Kör>redigera konfigurationer.... På den här menyn kan du skapa eller redigera konfigurationerna för fjärrfelsökning.

  2. I dialogrutan Kör/felsöka konfigurationer väljer du plustecknet (+). Välj sedan alternativet Apache Spark på HDInsight .

    Intellij Add new configuration.

  3. Växla till fliken Fjärrkörning i kluster . Ange information för Namn, Spark-kluster och Huvudklassnamn. Klicka sedan på Avancerad konfiguration (fjärrfelsökning). Våra verktyg stöder felsökning med körverktyg. Standardvärdet numExectors är 5. Det är bäst att du inte anger högre än 3.

    Intellij Run debug configurations.

  4. I delen Avancerad konfiguration (fjärrfelsökning) väljer du Aktivera Fjärrfelsökning i Spark. Ange SSH-användarnamnet och ange sedan ett lösenord eller använd en privat nyckelfil. Om du vill utföra fjärrfelsökning måste du ange det. Du behöver inte ange det om du bara vill använda fjärrkörning.

    Intellij Advanced Configuration enable spark remote debug.

  5. Konfigurationen sparas nu med det namn som du angav. Om du vill visa konfigurationsinformationen väljer du konfigurationsnamnet. Om du vill göra ändringar väljer du Redigera konfigurationer.

  6. När du har slutfört konfigurationsinställningarna kan du köra projektet mot fjärrklustret eller utföra fjärrfelsökning.

    Intellij Debug Remote Spark Job Remote run button.

  7. Klicka på knappen Koppla från så att insändningsloggarna inte visas i den vänstra panelen. Den körs dock fortfarande på serverdelen.

    Intellij Debug Remote Spark Job Remote run result.

Utföra fjärrfelsökning

  1. Konfigurera brytpunkter och klicka sedan på ikonen Fjärrfelsökning . Skillnaden med fjärröverföring är att SSH-användarnamn/lösenord måste konfigureras.

    Intellij Debug Remote Spark Job debug icon.

  2. När programkörningen når brytpunkten visas fliken Drivrutin och två körflikar i fönstret Felsökare. Välj ikonen Återuppta program för att fortsätta köra koden, som sedan når nästa brytpunkt. Du måste växla till rätt körflik för att hitta den målexekutor som ska felsökas. Du kan visa körningsloggarna på motsvarande konsolflik .

    Intellij Debug Remote Spark Job Debugging tab.

Utföra fjärrfelsökning och felkorrigering

  1. Konfigurera två brytpunkter och välj sedan felsökningsikonen för att starta fjärrfelsökningsprocessen.

  2. Koden stoppas vid den första brytpunkten och parameter- och variabelinformationen visas i fönstret Variabler .

  3. Välj ikonen Återuppta program för att fortsätta. Koden stoppas vid den andra punkten. Undantaget fångas som förväntat.

    Intellij Debug Remote Spark Job throw error.

  4. Välj ikonen Återuppta program igen. Fönstret HDInsight Spark-inlämning visar ett fel om att jobbkörningen misslyckades.

    Intellij Debug Remote Spark Job Error submission.

  5. Om du vill uppdatera variabelvärdet dynamiskt med hjälp av felsökningsfunktionen IntelliJ väljer du Felsöka igen. Fönstret Variabler visas igen.

  6. Högerklicka på målet på fliken Felsök och välj sedan Ange värde. Ange sedan ett nytt värde för variabeln. Välj sedan Retur för att spara värdet.

    Intellij Debug Remote Spark Job set value.

  7. Välj ikonen Återuppta program för att fortsätta att köra programmet. Den här gången fångas inget undantag. Du kan se att projektet körs utan undantag.

    Intellij Debug Remote Spark Job without exception.

Nästa steg

Scenarier

Skapa och köra program

Verktyg och tillägg

Hantera resurser