Zelfstudie: Een Apache Spark-toepassing maken met IntelliJ met behulp van een Synapse-werkruimte

In deze zelfstudie ziet u hoe u de invoegtoepassing Azure-toolkit voor IntelliJ gebruikt om Apache Spark-toepassingen, die in Scala worden geschreven, te ontwikkelen en naar een serverloze Apache Spark-pool te verzenden, rechtstreeks vanuit de IntelliJ-IDE (Integrated Development Environment). U kunt de invoegtoepassing op een paar manieren gebruiken:

  • Ontwikkel een Scala Spark-toepassing en verzend deze naar een Spark-pool.
  • Verkrijg toegang tot de resources van uw Spark-pools.
  • Ontwikkel een Scala Spark-toepassing en voer deze lokaal uit.

In deze zelfstudie leert u het volgende:

  • De invoegtoepassing Azure-toolkit voor IntelliJ gebruiken
  • Apache Spark-toepassingen ontwikkelen
  • Toepassingen naar Spark-pools verzenden

Vereisten

Een Spark Scala-toepassing maken voor een Spark-pool

  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-hulpprogramma een van de volgende typen:

    • 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 IDEA New Project dialog box

  5. Selecteer Volgende.

  6. Geef in het venster New project de volgende gegevens op:

    Eigenschappen Beschrijving
    Projectnaam Voer een naam in. In deze zelfstudie wordt myApp gebruikt.
    Projectlocatie Voer de gewenste locatie in om uw project in op te slaan.
    Project SDK Als u IDEA voor het eerst gebruikt, is dit veld wellicht leeg. Selecteer New... en ga naar uw JDK.
    Spark-versie De wizard voor het maken van het project integreert de juiste versie voor Spark SDK en Scala SDK. Hier kunt u de Spark-versie kiezen die u nodig hebt.

    Selecting the Apache Spark SDK

  7. Selecteer Voltooien. Het kan enkele minuten duren voordat het project beschikbaar wordt.

  8. Het Spark-project maakt automatisch een artefact voor u. Doe het volgende om het artefact te bekijken:

    a. Navigeer in de menubalk naar Bestand>Projectstructuur....

    b. Selecteer in het venster Projectstructuur de optie Artefacten.

    c. Selecteer Annuleren nadat u het artefact hebt bekeken.

    Artifact info in the dialog box

  9. Zoek LogQuery in myApp>src>main>scala>sample>LogQuery. Deze zelfstudie maakt gebruik van LogQuery om te worden uitgevoerd.

    Commands for creating a Scala class from Project

Verbinding maken met uw Spark-pools

Meld u aan bij uw Azure-abonnement om verbinding te maken met uw Spark-pools.

Aanmelden bij uw Azure-abonnement

  1. Navigeer in de menubalk naar Beeld>Hulpprogrammavensters>Azure Explorer.

    IntelliJ IDEA shows Azure Explorer

  2. Klik in Azure Explorer met de rechtermuisknop op het knooppunt Azure en selecteer Aanmelden.

    IntelliJ IDEA explorer right-click Azure

  3. Kies in het dialoogvenster Azure-aanmelding de optie Apparaataanmelding en selecteer Aanmelden.

    IntelliJ IDEA Azure sign-in

  4. Selecteer in het dialoogvenster Azure-apparaataanmelding de optie Kopiëren en openen.

    IntelliJ IDEA Azure device login

  5. Plak de code in de browserinterface en selecteer Volgende.

    Microsoft enters code dialog for HDI

  6. Voer uw referenties voor Azure in en sluit de browser.

    Microsoft enters e-mail dialog for HDI

  7. Zodra u bent aangemeld, toont het dialoogvenster Abonnementen selecteren alle Azure-abonnementen die aan de referenties zijn gekoppeld. Selecteer uw abonnement en selecteer Selecteren.

    The Select Subscriptions dialog box

  8. Vouw in Azure Explorer de optie Apache Spark in Synapse uit om de werkruimten te bekijken die in uw abonnementen staan.

    IntelliJ IDEA Azure Explorer main view

  9. Als u de Spark-pools wilt bekijken, kunt u een werkruimte verder uitvouwen.

    Azure Explorer storage accounts

Een Spark Scala-toepassing extern uitvoeren in een Spark-pool

Nadat u een Scala-toepassing hebt gemaakt, kunt u deze extern uitvoeren.

  1. Open het venster Uitvoeren/fouten opsporen van configuraties door het pictogram te selecteren.

    The Submit Spark Application to HDInsight command 1

  2. Selecteer in het dialoogvenster Uitvoeren/fouten opsporen van configuraties de optie + en selecteer Apache Spark in Synapse.

    The Submit Spark Application to HDInsight command 2

  3. Geef in het venster Uitvoeren/fouten opsporen van configuraties de volgende waarden op en selecteer OK:

    Eigenschappen Weergegeven als
    Spark-pools Selecteer de Spark-pools waarop u uw toepassing wilt uitvoeren.
    Selecteer een artefact om te verzenden Laat de standaardinstelling staan.
    Hoofdklassenaam De standaardwaarde is de hoofdklasse uit het geselecteerde bestand. U kunt de klasse wijzigen door het beletselteken (...) te selecteren en een andere klasse te kiezen.
    Taakconfiguraties U kunt de standaardsleutel en -waarden wijzigen. Zie Apache Livy REST API voor meer informatie.
    Opdrachtregelargumenten U kunt voor de hoofdklasse argumenten invoeren, gescheiden door een spatie, indien nodig.
    JAR’s en bestanden waarnaar wordt verwezen U kunt de paden invoeren voor de JAR’s en bestanden waarnaar wordt verwezen, indien aanwezig. U kunt ook bladeren door bestanden in het virtuele Azure-bestandssysteem, dat momenteel alleen ADLS Gen2-cluster ondersteunt. Voor meer informatie: Apache Spark-configuratie en het uploaden van resources naar cluster.
    Opslag van taakuploads Vouw uit om aanvullende opties te onthullen.
    Opslagtype Selecteer Azure Blob gebruiken voor uploaden of Standaardopslagaccount van cluster gebruiken voor uploaden in de vervolgkeuzelijst.
    Opslagaccount Voer uw opslagaccount in.
    Opslagsleutel Voer uw opslagsleutel in.
    Opslagcontainer Selecteer uw opslagcontainer in de vervolgkeuzelijst zodra Opslagaccount en Opslagsleutel zijn ingevoerd.

    The Spark Submission dialog box 1

  4. Selecteer het pictogram SparkJobRun om uw project te verzenden naar de geselecteerde Spark-pool. Onderaan het tabblad Externe Spark-taak in cluster wordt de voortgang van de taakuitvoering weergegeven. U kunt de toepassing stoppen door de rode knop te selecteren.

    Apache Spark Submission window

    The Spark Submission dialog box 2

Lokaal uitvoeren/fouten opsporen van Apache Spark-toepassingen

U kunt de onderstaande instructies volgen om uw lokale uitvoering en lokale foutopsporing voor uw Apache Spark-taak in te stellen.

Scenario 1: Lokale uitvoering uitvoeren

  1. Open het dialoogvenster Uitvoeren/fouten opsporen van configuraties en selecteer het plusteken (+). Selecteer vervolgens de optie Apache Spark in Synapse. Voer informatie in voor Naam, Hoofdklassenaam om op te slaan.

    Intellij Run debug configurations local run 1

    • Omgevingsvariabelen en WinUtils.exe-locatie zijn alleen voor Windows-gebruikers.
    • Omgevingsvariabelen: de omgevingsvariabele van het systeem kan automatisch worden gedetecteerd als u deze eerder hebt ingesteld en u hoeft deze niet handmatig toe te voegen.
    • WinUtils.exe-locatie: u kunt de WinUtils-locatie opgeven door het mappictogram aan de rechterkant te selecteren.
  2. Selecteer vervolgens de knop Lokaal afspelen.

    Intellij Run debug configurations local run 2

  3. Zodra de lokale uitvoering is voltooid, kunt u (als het script uitvoer bevat) het uitvoerbestand controleren via gegevens>standaard.

    Intellij Project local run result 1

Scenario 2: Lokale foutopsporing uitvoeren

  1. Open het LogQuery-script en stel onderbrekingspunten in.

  2. Selecteer het pictogram Lokale foutopsporing om lokaal fouten op te sporen.

    Intellij Project local run result 2

Synapse-werkruimte openen en beheren

U kunt verschillende bewerkingen in Azure Explorer uitvoeren in Azure-toolkit voor IntelliJ. Navigeer in de menubalk naar Beeld>Hulpprogrammavensters>Azure Explorer.

Werkruimte starten

  1. Navigeer in Azure Explorer naar Apache Spark in Synapse en vouw het uit.

    IntelliJ IDEA Azure Explorer main view

  2. Klik met de rechtermuisknop op een werkruimte en selecteer Werkruimte starten, waarna een website wordt geopend.

    Spark Job View Application details 1

    Spark Job View Application details 2

Spark-console

U kunt de lokale Spark-console (Scala) uitvoeren of de interactieve Spark Livy-sessieconsole (Scala) uitvoeren.

Lokale Spark-console (Scala)

Verzeker dat u aan de WINUTILS.EXE-vereiste voldoet.

  1. Navigeer in de menubalk naar Uitvoeren>Configuraties bewerken....

  2. Navigeer in het linkerdeelvenster van het venster Uitvoeren/fouten opsporen van configuraties naar Apache Spark in Synapse>[Spark in Synapse] myApp.

  3. Selecteer in het hoofdvenster het tabblad Lokaal uitvoeren.

  4. Geef de volgende waarden op en selecteer OK:

    Eigenschappen Weergegeven als
    Omgevingsvariabelen Verzeker dat de waarde voor HADOOP_HOME correct is.
    WINUTILS.exe-locatie Verzeker dat het pad correct is.

    Local Console Set Configuration

  5. Navigeer in Project naar myApp>src>main>scala>myApp.

  6. Navigeer in de menubalk naar Hulpprogramma’s>Spark-console>Lokale Spark-console (Scala) uitvoeren.

  7. Er kunnen dan twee dialoogvensters worden weergegeven waarin u wordt gevraagd of u afhankelijkheden automatisch wilt oplossen. Als u dat wilt doen, selecteert u Automatisch oplossen.

    IntelliJ IDEA Spark Auto Fix dialog1

    IntelliJ IDEA Spark Auto Fix dialog2

  8. De console moet er ongeveer uitzien zoals in de onderstaande afbeelding. Typ sc.appName in het consolevenster en druk op Ctrl+Enter. Het resultaat wordt weergegeven. U kunt de lokale console stoppen door de rode knop te selecteren.

    IntelliJ IDEA local console result

Interactieve Spark Livy-sessieconsole (Scala)

Deze wordt alleen ondersteund in IntelliJ 2018.2 en 2018.3.

  1. Navigeer in de menubalk naar Uitvoeren>Configuraties bewerken....

  2. Navigeer in het linkerdeelvenster van het venster Uitvoeren/fouten opsporen van configuraties naar Apache Spark in Synapse>[Spark in Synapse] myApp.

  3. Selecteer in het hoofdvenster het tabblad Extern uitvoeren in cluster.

  4. Geef de volgende waarden op en selecteer OK:

    Eigenschappen Weergegeven als
    Hoofdklassenaam Selecteer de hoofdklassenaam.
    Spark-pools Selecteer de Spark-pools waarop u uw toepassing wilt uitvoeren.

    Interactive Console Set Configuration

  5. Navigeer in Project naar myApp>src>main>scala>myApp.

  6. Navigeer in de menubalk naar Hulpprogramma’s>Spark-console>Interactieve Spark Livy-sessieconsole (Scala) uitvoeren.

  7. De console moet er ongeveer uitzien zoals in de onderstaande afbeelding. Typ sc.appName in het consolevenster en druk op Ctrl+Enter. Het resultaat wordt weergegeven. U kunt de lokale console stoppen door de rode knop te selecteren.

    IntelliJ IDEA Interactive Console Result

Selectie verzenden naar Spark-console

U kunt het scriptresultaat te voorzien door wat code naar de lokale console of de interactieve Livy-sessieconsole (Scala) te verzenden. Daarvoor kunt u wat code in het Scala-bestand markeren en vervolgens met de rechtermuisknop op Selectie verzenden naar Spark-console klikken. De geselecteerde code wordt dan naar de console verzonden en uitgevoerd. Het resultaat wordt achter de code weergegeven in de console. De console controleert de aanwezige fouten.

Send Selection to Spark console

Volgende stappen