Självstudie: Skapa ett Apache Spark-program med IntelliJ med hjälp av en Synapse-arbetsyta

Den här självstudien visar hur du använder Plugin-programmet Azure Toolkit for IntelliJ för att utveckla Apache Spark-program, som är skrivna i Scala, och sedan skickar dem till en serverlös Apache Spark-pool direkt från IntelliJ Integrated Development Environment (IDE). Du kan använda plugin-programmet på några sätt:

  • Utveckla och skicka ett Scala Spark-program i en Spark-pool.
  • Få åtkomst till dina Spark-poolresurser.
  • Utveckla och köra ett Scala Spark-program lokalt.

I den här självstudien lär du dig att:

  • Använda plugin-programmet Azure Toolkit for IntelliJ
  • Utveckla Apache Spark-program
  • Skicka programmet till Spark-pooler

Förutsättningar

  • IntelliJ IDEA Community-version.

  • Plugin-programmet Azure toolkit 3.27.0-2019.2 – Installera från IntelliJ-plugin-lagringsplatsen

  • JDK (version 1.8).

  • Scala Plugin – Installera från IntelliJ Plugin-lagringsplatsen.

  • Följande krav gäller endast för Windows-användare:

    När du kör det lokala Spark Scala-programmet på en Windows-dator kan du få ett undantag, enligt beskrivningen i SPARK-2356. Undantaget beror på att WinUtils.exe saknas i Windows. Lös det här felet genom att ladda ned den körbara WinUtils-filen till en plats som C:\WinUtils\bin. Lägg sedan till miljövariabeln HADOOP_HOME och ange värdet för variabeln till C:\WinUtils.

Skapa ett Spark Scala-program för en Spark-pool

  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. Välj någon av följande typer i listrutan Build tool (Skapa verktyg ):

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

    IntelliJ IDEA New Project dialog box

  5. Välj Nästa.

  6. I fönstret Nytt projekt anger du följande information:

    Property beskrivning
    Projektnamn Ange ett namn. I den här självstudien används myApp.
    Projektplats Ange önskad plats för att spara projektet.
    Projekt-SDK Det kan vara tomt vid din första användning av IDEA. Välj Nytt... och navigera till din JDK.
    Spark-version Skapandeguiden integrerar rätt version för Spark SDK och Scala SDK. Här kan du välja den Spark-version som du behöver.

    Selecting the Apache Spark SDK

  7. Välj Slutför. Det kan ta några minuter innan projektet blir tillgängligt.

  8. Spark-projektet skapar automatiskt en artefakt åt dig. Gör följande för att visa artefakten:

    a. Från menyraden går du till Filprojektstruktur>....

    b. I fönstret Projektstruktur väljer du Artefakter.

    c. Välj Avbryt när du har sett artefakten.

    Artifact info in the dialog box

  9. Hitta LogQuery från myApp>src>main>scala>sample>LogQuery. Den här självstudien använder LogQuery för att köra.

    Commands for creating a Scala class from Project

Anslut till dina Spark-pooler

Logga in på Azure-prenumerationen för att ansluta till dina Spark-pooler.

Logga in till din Azure-prenumeration

  1. Från menyraden går du till Visa>verktyg Windows>Azure Explorer.

    IntelliJ IDEA shows Azure Explorer

  2. Högerklicka på Azure-noden i Azure Explorer och välj sedan Logga in.

    IntelliJ IDEA explorer right-click Azure

  3. I dialogrutan Azure-inloggning väljer du Enhetsinloggning och sedan Logga in.

    IntelliJ IDEA Azure sign-in

  4. I dialogrutan Azure Device Login (Azure-enhetsinloggning) väljer du Kopiera och öppna.

    IntelliJ IDEA Azure device login

  5. I webbläsargränssnittet klistrar du in koden och väljer sedan Nästa.

    Microsoft enters code dialog for HDI

  6. Ange dina Azure-autentiseringsuppgifter och stäng sedan webbläsaren.

    Microsoft enters e-mail dialog for HDI

  7. När du har loggat in visas alla Azure-prenumerationer som är associerade med autentiseringsuppgifterna i dialogrutan Välj prenumerationer . Välj din prenumeration och välj sedan Välj.

    The Select Subscriptions dialog box

  8. Från Azure Explorer expanderar du Apache Spark i Synapse för att visa de arbetsytor som finns i dina prenumerationer.

    IntelliJ IDEA Azure Explorer main view

  9. Om du vill visa Spark-poolerna kan du expandera en arbetsyta ytterligare.

    Azure Explorer storage accounts

Fjärrkör ett Spark Scala-program i en Spark-pool

När du har skapat ett Scala-program kan du fjärrköra det.

  1. Öppna fönstret Kör/felsöka konfigurationer genom att välja ikonen .

    The Submit Spark Application to HDInsight command 1

  2. I dialogrutan Kör/felsöka konfigurationer väljer du +och väljer sedan Apache Spark i Synapse.

    The Submit Spark Application to HDInsight command 2

  3. I fönstret Kör/felsöka konfigurationer anger du följande värden och väljer sedan OK:

    Property Värde
    Spark-pooler Välj de Spark-pooler som du vill köra programmet på.
    Välj en artefakt som ska skickas Låt standardinställningen vara kvar.
    Huvudklassnamn Standardvärdet är huvudklassen från den valda filen. Du kan ändra klassen genom att välja ellipsen(...) och välja en annan klass.
    Jobbkonfigurationer Du kan ändra standardnyckeln och standardvärdena. Mer information finns i Apache Livy REST API.
    Kommandoradsargument Du kan ange argument avgränsade med blanksteg för huvudklassen om det behövs.
    Refererade jars och refererade filer Du kan ange sökvägarna för de refererade jar-filerna och filerna om det finns några. Du kan också bläddra bland filer i det virtuella Azure-filsystemet, som för närvarande endast stöder ADLS Gen2-kluster. Mer information: Apache Spark-konfiguration och Hur du laddar upp resurser till kluster.
    Lagring för jobbuppladdning Expandera för att visa ytterligare alternativ.
    Lagringstyp Välj Använd Azure Blob för att ladda upp eller Använd klusterstandardlagringskonto för att ladda upp från listrutan.
    Lagringskonto Ange ditt lagringskonto.
    Lagringsnyckel Ange lagringsnyckeln.
    Lagringscontainer Välj din lagringscontainer i listrutan när lagringskontot och lagringsnyckeln har angetts.

    The Spark Submission dialog box 1

  4. Välj SparkJobRun-ikonen för att skicka projektet till den valda Spark-poolen. Fliken Fjärr-Spark-jobb i kluster visar jobbkörningens förlopp längst ned. Du kan stoppa programmet genom att välja den röda knappen.

    Apache Spark Submission window

    The Spark Submission dialog box 2

Lokala Kör/felsöka Apache Spark-program

Du kan följa anvisningarna nedan för att konfigurera din lokala körning och lokala felsökning för ditt Apache Spark-jobb.

Scenario 1: Kör lokalt

  1. Öppna dialogrutan Kör/felsöka konfigurationer och välj plustecknet (+). Välj sedan alternativet Apache Spark på Synapse . Ange information för Namn, Huvudklassnamn att spara.

    Intellij Run debug configurations local run 1

    • Miljövariabler och WinUtils.exe Plats är endast för Windows-användare.
    • Miljövariabler: Systemmiljövariabeln kan identifieras automatiskt om du har angett den tidigare och inte behöver lägga till den manuellt.
    • WinUtils.exe Plats: Du kan ange platsen WinUtils genom att välja mappikonen till höger.
  2. Välj sedan den lokala uppspelningsknappen.

    Intellij Run debug configurations local run 2

  3. När den lokala körningen är klar kan du kontrollera utdatafilen från standarddata> om skriptet innehåller utdata.

    Intellij Project local run result 1

Scenario 2: Utför lokal felsökning

  1. Öppna LogQuery-skriptet och ange brytpunkter.

  2. Välj ikonen Lokal felsökning för att utföra lokal felsökning.

    Intellij Project local run result 2

Få åtkomst till och hantera Synapse-arbetsyta

Du kan utföra olika åtgärder i Azure Explorer i Azure Toolkit for IntelliJ. Från menyraden går du till Visa>verktyg Windows>Azure Explorer.

Starta arbetsyta

  1. Från Azure Explorer går du till Apache Spark i Synapse och expanderar det.

    IntelliJ IDEA Azure Explorer main view

  2. Högerklicka på en arbetsyta och välj sedan Starta arbetsyta. Webbplatsen öppnas.

    Spark Job View Application details 1

    Spark Job View Application details 2

Spark-konsolen

Du kan köra Spark Local Console (Scala) eller köra Spark Livy Interactive Session Console (Scala).

Lokal Spark-konsol (Scala)

Kontrollera att du har uppfyllt kraven för WINUTILS.EXE.

  1. Från menyraden går du till Kör>Redigera konfigurationer....

  2. I fönstret Kör/felsöka konfigurationer går du till Apache Spark på Synapse>[Spark på Synapse] myApp i den vänstra rutan.

  3. I huvudfönstret väljer du fliken Lokalt kör .

  4. Ange följande värden och välj sedan OK:

    Property Värde
    Miljövariabler Kontrollera att värdet för HADOOP_HOME är korrekt.
    WINUTILS.exe-plats Kontrollera att sökvägen är korrekt.

    Local Console Set Configuration

  5. Från Project går du till myApp>src>main>scala>myApp.

  6. Från menyraden går du till Verktyg>Spark-konsolen>Kör Spark Local Console(Scala).

  7. Sedan kan två dialogrutor visas för att fråga dig om du vill åtgärda beroenden automatiskt. I så fall väljer du Automatisk korrigering.

    IntelliJ IDEA Spark Auto Fix dialog1

    IntelliJ IDEA Spark Auto Fix dialog2

  8. Konsolen bör se ut ungefär som bilden nedan. I konsolfönstret skriver du sc.appNameoch trycker sedan på ctrl+Retur. Resultatet visas. Du kan stoppa den lokala konsolen genom att välja röd knapp.

    IntelliJ IDEA local console result

Interaktiv Spark Livy-sessionskonsol (Scala)

Det stöds bara på IntelliJ 2018.2 och 2018.3.

  1. Från menyraden går du till Kör>Redigera konfigurationer....

  2. Gå till Apache Spark på synapse[Spark on synapse>] myApp i fönstret Kör/Felsöka konfigurationer i det vänstra fönstret.

  3. I huvudfönstret väljer du fliken Fjärrkörning i kluster .

  4. Ange följande värden och välj sedan OK:

    Property Värde
    Huvudklassnamn Välj huvudklassnamnet.
    Spark-pooler Välj de Spark-pooler som du vill köra programmet på.

    Interactive Console Set Configuration

  5. Från Project går du till myApp>src>main>scala>myApp.

  6. Från menyraden går du till Verktyg>Spark-konsolen>Kör Spark Livy Interactive Session Console(Scala).

  7. Konsolen bör se ut ungefär som bilden nedan. I konsolfönstret skriver du sc.appNameoch trycker sedan på ctrl+Retur. Resultatet visas. Du kan stoppa den lokala konsolen genom att välja röd knapp.

    IntelliJ IDEA Interactive Console Result

Skicka markeringen till Spark-konsolen

Du kanske vill se skriptresultatet genom att skicka kod till den lokala konsolen eller Livy Interactive Session Console (Scala). Om du vill göra det kan du markera kod i Scala-filen och sedan högerklicka på Skicka markering till Spark-konsolen. Den valda koden skickas till konsolen och görs. Resultatet visas efter koden i konsolen. Konsolen kontrollerar de befintliga felen.

Send Selection to Spark console

Nästa steg