Dela via


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.

    Dialogrutan IntelliJ IDEA Nytt projekt

  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.

    Välja 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.

    Artefaktinformation i dialogrutan

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

    Kommandon för att skapa en Scala-klass från Project

Ansluta 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 visar Azure Explorer

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

    Högerklicka på Azure i IntelliJ IDEA Explorer

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

    IntelliJ IDEA Azure-inloggning

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

    IntelliJ IDEA Azure-enhetsinloggning

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

    Microsoft anger koddialogruta för HDI

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

    Microsoft anger e-postdialogruta för 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.

    Dialogrutan Select Subscriptions (Välj prenumerationer)

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

    Huvudvyn IntelliJ IDEA Azure Explorer

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

    Azure Explorer-lagringskonton

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 .

    Kommandot Skicka Spark-program till HDInsight 1

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

    Kommandot Skicka Spark-program till HDInsight 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.

    Dialogrutan Spark-sändning 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-sändningsfönster

    Dialogrutan Spark-överföring 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 Kör felsökningskonfigurationer lokalt kör 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 Kör felsökningskonfigurationer lokalt kör 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.

    Huvudvyn IntelliJ IDEA Azure Explorer

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

    Information om Spark-jobbvisningsprogram 1

    Information om Spark-jobbvisningsprogram 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 WINUTILS.EXE förutsättning.

  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.

    Konfiguration av lokal konsoluppsättning

  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.

    Dialogrutan IntelliJ IDEA Spark Auto Fix1

    Dialogrutan IntelliJ IDEA Spark Auto Fix2

  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.

    Resultat av den lokala IntelliJ IDEA-konsolen

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å.

    Konfiguration av interaktiv konsoluppsättning

  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 Interaktiv konsolresultat

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.

Skicka markeringen till Spark-konsolen

Nästa steg