Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie leert u hoe u een Apache Spark-toepassing maakt die in Scala is geschreven met behulp van Apache Maven met IntelliJ IDEA. In het artikel wordt Apache Maven gebruikt als het buildsysteem. En begint met een bestaand Maven-archetype voor Scala dat wordt geleverd door IntelliJ IDEA. Het maken van een Scala-toepassing in IntelliJ IDEA omvat de volgende stappen:
- Gebruik Maven als het buildsysteem.
- Werk het POM-bestand (Project Object Model) bij om afhankelijkheden van spark-modules op te lossen.
- Schrijf uw toepassing in Scala.
- Genereer een JAR-bestand dat kan worden verzonden naar HDInsight Spark-clusters.
- Voer de toepassing uit op het Spark-cluster met behulp van Livy.
In deze zelfstudie leert u het volgende:
- Scala-invoegtoepassing voor IntelliJ IDEA installeren
- IntelliJ gebruiken om een Scala Maven-toepassing te ontwikkelen
- Een zelfstandig Scala-project maken
Vereiste voorwaarden
Een Apache Spark-cluster in HDInsight. Zie Apache Spark-clusters maken in Azure HDInsight voor instructies.
Oracle Java Development Kit. In deze zelfstudie wordt gebruikgemaakt van Java-versie 8.0.202.
Een Java IDE. In dit artikel wordt gebruikgemaakt van IntelliJ IDEA Community 2018.3.4.
Azure-toolkit voor IntelliJ. Zie Installing the Azure Toolkit for IntelliJ (De Azure Toolkit voor IntelliJ installeren).
Scala-invoegtoepassing voor IntelliJ IDEA installeren
Voer de volgende stappen uit om de Scala-invoegtoepassing te installeren:
Open IntelliJ IDEA.
Navigeer in het welkomstscherm naar Invoegtoepassingen configureren> om het venster Invoegtoepassingen te openen.
Selecteer Installeren voor Azure Toolkit voor IntelliJ.
Selecteer Installeren voor de Scala-invoegtoepassing die wordt weergegeven in het nieuwe venster.
Nadat de invoegtoepassing is geïnstalleerd, moet u de IDE opnieuw starten.
IntelliJ gebruiken om een toepassing te maken
Start IntelliJ IDEA en selecteer Create New Project om het venster New Project te openen.
Selecteer Apache Spark/HDInsight in het linkerdeelvenster.
Selecteer Spark-project (Scala) in het hoofdvenster.
Selecteer in de vervolgkeuzelijst Build tool een van de volgende waarden:
- Maven voor ondersteuning van de wizard voor het maken van Scala-projecten.
- SBT, voor het beheren van de afhankelijkheden en het bouwen van het Scala-project.
Kies Volgende.
Geef in het venster New project de volgende gegevens op:
Vastgoed Beschrijving Projectnaam Voer een naam in. Projectlocatie Voer de locatie in om uw project op te slaan. Project SDK Dit veld is leeg bij uw eerste gebruik van IDEA. 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. Selecteer Spark 1.x als de Spark-clusterversie ouder is dan 2.0. Selecteer anders Spark2.x. In dit voorbeeld wordt Spark 2.3.0 (Scala 2.11.8) gebruikt. Selecteer en voltooi.
Een zelfstandig Scala-project maken
Start IntelliJ IDEA en selecteer Create New Project om het venster New Project te openen.
Selecteer Maven in het linkerdeelvenster.
Geef een Project SDK op. Als dit veld leeg is, selecteert u Nieuw... en navigeert u naar de installatiemap van Java.
Schakel het selectievakje Maken uit archetype in.
Selecteer
org.scala-tools.archetypes:scala-archetype-simple
in de lijst met archetypen . Met dit archetype maakt u de juiste mapstructuur en downloadt u de vereiste standaardafhankelijkheden om scala-programma te schrijven.Kies Volgende.
Vouw artefactcoördinaten uit. Geef relevante waarden op voor GroupId en ArtifactId. Naam en locatie worden automatisch ingevuld. In deze zelfstudie worden de volgende waarden gebruikt:
- GroupId: com.microsoft.spark.example
- ArtifactId: SparkSimpleApp
Kies Volgende.
Controleer de instellingen en selecteer vervolgens Volgende.
Controleer de projectnaam en -locatie en selecteer Voltooien. Het importeren van het project zal enkele minuten duren.
Zodra het project is geïmporteerd, navigeert u in het linkerdeelvenster naar sparkSimpleApp>src-test>>scala>com>microsoft>spark-voorbeeld>. Klik met de rechtermuisknop op MySpec en selecteer Verwijderen.... U hebt dit bestand niet nodig voor de toepassing. Selecteer OK in het dialoogvenster.
In de latere stappen werkt u de pom.xml bij om de afhankelijkheden voor de Spark Scala-toepassing te definiëren. Als u deze afhankelijkheden automatisch wilt downloaden en oplossen, moet u Maven configureren.
Selecteer Instellingen in het menu Bestand om het venster Instellingen te openen.
Navigeer in het venster Instellingen naar Build, Execution, Deployment>Build Tools>Maven>Importing.
Schakel het selectievakje Maven-projecten importeren automatisch in .
Selecteer Toepassenen selecteer vervolgens OK. Vervolgens keert u terug naar het projectvenster.
:::image type="content" source="./media/apache-spark-create-standalone-application/configure-maven-download.png" alt-text="Configure Maven for automatic downloads." border="true":::
Navigeer in het linkerdeelvenster naar src>main>scala>com.microsoft.spark.example en dubbelklik vervolgens op App om App.scala te openen.
Vervang de bestaande voorbeeldcode door de volgende code en sla de wijzigingen op. Met deze code worden de gegevens uit de HVAC.csv gelezen (beschikbaar op alle HDInsight Spark-clusters). Haalt de rijen op met slechts één cijfer in de zesde kolom. En schrijft de uitvoer naar /HVACOut onder de standaardopslagcontainer voor het cluster.
package com.microsoft.spark.example import org.apache.spark.SparkConf import org.apache.spark.SparkContext /** * Test IO to wasb */ object WasbIOTest { def main (arg: Array[String]): Unit = { val conf = new SparkConf().setAppName("WASBIOTest") val sc = new SparkContext(conf) val rdd = sc.textFile("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv") //find the rows which have only one digit in the 7th column in the CSV val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1) rdd1.saveAsTextFile("wasb:///HVACout") } }
Dubbelklik in het linkerdeelvenster op pom.xml.
Voeg binnen
<project>\<properties>
de volgende segmenten toe:<scala.version>2.11.8</scala.version> <scala.compat.version>2.11.8</scala.compat.version> <scala.binary.version>2.11</scala.binary.version>
Voeg binnen
<project>\<dependencies>
de volgende segmenten toe:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_${scala.binary.version}</artifactId> <version>2.3.0</version> </dependency>
Save changes to pom.xml.
Maak het .jar-bestand. Met IntelliJ IDEA kunt u JAR maken als artefact van een project. Ga als volgt te werk.
Open het menu Bestand en selecteer Projectstructuur....
Navigeer in het venster Projectstructuur naar Artefacten>met het plusteken +>JAR>Van modules met afhankelijkheden....
Selecteer in het venster JAR maken vanuit modules het mappictogram in het tekstvak Main Class .
Selecteer in het venster Hoofdklasse selecteren de klasse die standaard wordt weergegeven en selecteer vervolgens OK.
Controleer in het venster JAR maken op basis van modules of het uitpakken naar de doel-JAR-optie is geselecteerd en selecteer vervolgens OK. Met deze instelling maakt u één JAR met alle afhankelijkheden.
Het tabblad Uitvoerindeling bevat alle JAR's die zijn opgenomen als onderdeel van het Maven-project. U kunt de opties selecteren en verwijderen waarop de Scala-toepassing geen directe afhankelijkheid heeft. Voor de toepassing, die u hier maakt, kunt u alle behalve de laatste verwijderen (SparkSimpleApp compile-uitvoer). Selecteer de jar's die u wilt verwijderen en selecteer vervolgens het negatieve symbool -.
Zorg ervoor dat het selectievakje Opnemen in projectbuild is ingeschakeld. Deze optie zorgt ervoor dat het JAR wordt gemaakt telkens wanneer het project wordt gebouwd of bijgewerkt. Selecteer toepassen en selecteer vervolgens OK.
Als u het jar-bestand wilt maken, gaat u naar Build>Build Artifacts>Build. Het project wordt in ongeveer 30 seconden gecompileerd. De uitvoer-JAR wordt gemaakt onder \out\artifacts.
De toepassing uitvoeren op het Apache Spark-cluster
Als u de toepassing op het cluster wilt uitvoeren, kunt u de volgende methoden gebruiken:
Kopieer het jar-bestand van de toepassing naar de Azure Storage-blob die is gekoppeld aan het cluster. U kunt AzCopy, een opdrachtregelprogramma, gebruiken om dit te doen. Er zijn ook veel andere clients die u kunt gebruiken om gegevens te uploaden. Meer informatie hierover vindt u in Gegevens uploaden voor Apache Hadoop-taken in HDInsight.
Gebruik Apache Livy om een toepassingstaak op afstand naar het Spark-cluster te verzenden. Spark-clusters in HDInsight bevatten Livy, waarmee REST-eindpunten toegang bieden om Spark-taken op afstand in te dienen. Zie Apache Spark-taken op afstand verzenden met Apache Livy met Spark-clusters in HDInsight voor meer informatie.
De hulpbronnen opschonen
Als u deze toepassing verder niet meer gebruikt, verwijdert u het cluster dat u hebt gemaakt, via de volgende stappen:
Meld u aan bij het Azure-portaal.
Typ HDInsight in het Zoekvak bovenaan.
Selecteer onder Services de optie HDInsight-clusters.
Selecteer in de lijst met HDInsight-clusters die wordt weergegeven, de ... naast het cluster dat u voor deze zelfstudie hebt gemaakt.
Selecteer verwijderen. Selecteer Ja.
Volgende stap
In dit artikel hebt u geleerd hoe u een Apache Spark Scala-toepassing maakt. Ga naar het volgende artikel voor meer informatie over het uitvoeren van deze toepassing in een HDInsight Spark-cluster met behulp van Livy.