Kurz: Vytvoření aplikace Scala Maven pro Apache Spark v HDInsight pomocí IntelliJTutorial: Create a Scala Maven application for Apache Spark in HDInsight using IntelliJ

V tomto kurzu se naučíte, jak vytvořit aplikaci Apache Spark napsanou v Scala pomocí Apache Maven s IntelliJ nápadem.In this tutorial, you learn how to create an Apache Spark application written in Scala using Apache Maven with IntelliJ IDEA. Tento článek jako sestavovací systém používá Apache Maven a začíná existujícím archetypem Maven pro Scala, který poskytuje IntelliJ IDEA.The article uses Apache Maven as the build system and starts with an existing Maven archetype for Scala provided by IntelliJ IDEA. Vytvoření aplikace Scala v IntelliJ IDEA zahrnuje následující kroky:Creating a Scala application in IntelliJ IDEA involves the following steps:

  • Použití Mavenu jako sestavovacího systémuUse Maven as the build system.
  • Aktualizace souboru POM (Project Object Model) pro zajištění převodu závislostí modulů SparkuUpdate Project Object Model (POM) file to resolve Spark module dependencies.
  • Napsání aplikace v jazyce ScalaWrite your application in Scala.
  • Vygenerování souboru JAR, který je možné odeslat do clusterů HDInsight SparkGenerate a jar file that can be submitted to HDInsight Spark clusters.
  • Spuštění aplikace v clusteru Spark pomocí LivyRun the application on Spark cluster using Livy.

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Instalace modulu plug-in Scala pro IntelliJ IDEAInstall Scala plugin for IntelliJ IDEA
  • Vývoj aplikace Scala Maven pomocí IntelliJUse IntelliJ to develop a Scala Maven application
  • Vytvoření samostatného projektu ScalaCreate a standalone Scala project

PředpokladyPrerequisites

Instalace modulu plug-in Scala pro IntelliJ IDEAInstall Scala plugin for IntelliJ IDEA

K instalaci modulu plug-in Scala proveďte následující kroky:Perform the following steps to install the Scala plugin:

  1. Otevřete IntelliJ IDEA.Open IntelliJ IDEA.

  2. Na úvodní obrazovce přejděte ke konfiguraci modulů plug-in > pro otevření okna moduly plug-in .On the welcome screen, navigate to Configure > Plugins to open the Plugins window.

    IntelliJ nápad povolit modul plug-in Scala

  3. Vyberte nainstalovat pro modul plug-in Scala, který je vybraný v novém okně.Select Install for the Scala plugin that is featured in the new window.

    IntelliJ nápad nainstalovat modul plug-in Scala

  4. Po úspěšné instalaci modulu plug-in je potřeba restartovat integrované vývojové prostředí (IDE).After the plugin installs successfully, you must restart the IDE.

Použití IntelliJ k vytvoření aplikaceUse IntelliJ to create application

  1. Spusťte IntelliJ nápad a výběrem vytvořit nový projekt otevřete okno Nový projekt .Start IntelliJ IDEA, and select Create New Project to open the New Project window.

  2. V levém podokně vyberte Azure Spark/HDInsight .Select Azure Spark/HDInsight from the left pane.

  3. V hlavním okně vyberte projekt Spark (Scala) .Select Spark Project (Scala) from the main window.

  4. V rozevíracím seznamu Nástroj sestavení vyberte jednu z následujících možností:From the Build tool drop-down list, select one of the following:

    • Maven for Scala – Průvodce vytvořením projektu – podpora.Maven for Scala project-creation wizard support.
    • SBT pro správu závislostí a sestavení projektu Scala.SBT for managing the dependencies and building for the Scala project.

    IntelliJ dialogového okna Nový projekt

  5. Vyberte Další.Select Next.

  6. V okně Nový projekt zadejte následující informace:In the New Project window, provide the following information:

    VlastnostProperty PopisDescription
    Název projektuProject name Zadejte název.Enter a name.
    Projekt @ no__t-0locationProject location Zadejte požadované umístění pro uložení projektu.Enter the desired location to save your project.
    Projektový SDKProject SDK Tato akce bude při prvním používání NÁPADu prázdná.This will be blank on your first use of IDEA. Vyberte Nový... a přejděte k JDK.Select New... and navigate to your JDK.
    Verze SparkuSpark Version Průvodce vytvořením integruje správnou verzi sady Spark SDK a Scala SDK.The creation wizard integrates the proper version for Spark SDK and Scala SDK. Pokud je verze clusteru Spark nižší než 2.0, vyberte Spark 1.x.If the Spark cluster version is earlier than 2.0, select Spark 1.x. V opačném případě vyberte Spark 2.x.Otherwise, select Spark2.x. V tomto příkladu se používá Spark 2.3.0 (Scala 2.11.8) .This example uses Spark 2.3.0 (Scala 2.11.8).

    IntelliJ nápad výběru sady Spark SDK

  7. Vyberte Finish (Dokončit).Select Finish.

Vytvoření samostatného projektu ScalaCreate a standalone Scala project

  1. Spusťte IntelliJ nápad a výběrem vytvořit nový projekt otevřete okno Nový projekt .Start IntelliJ IDEA, and select Create New Project to open the New Project window.

  2. V levém podokně vyberte Maven .Select Maven from the left pane.

  3. Zadejte Project SDK (Sada SDK projektu).Specify a Project SDK. Pokud je tato možnost prázdná, vyberte Nový... a přejděte do instalačního adresáře Java.If blank, select New... and navigate to the Java installation directory.

  4. Zaškrtněte políčko vytvořit z Archetype .Select the Create from archetype checkbox.

  5. V seznamu archetypů vyberte org.scala-tools.archetypes:scala-archetype-simple.From the list of archetypes, select org.scala-tools.archetypes:scala-archetype-simple. Tento Archetype vytvoří správnou adresářovou strukturu a stáhne požadované výchozí závislosti pro zápis programu Scala.This archetype creates the right directory structure and downloads the required default dependencies to write Scala program.

    IntelliJ nápad vytvořit projekt Maven

  6. Vyberte Další.Select Next.

  7. Zadejte odpovídající hodnoty pro GroupId (ID skupiny), ArtifactId (ID artefaktu) a Version (Verze).Provide relevant values for GroupId, ArtifactId, and Version. V tomto kurzu se používají následující hodnoty:The following values are used in this tutorial:

    • GroupID: com. Microsoft. spark. exampleGroupId: com.microsoft.spark.example
    • ArtifactId: SparkSimpleAppArtifactId: SparkSimpleApp
  8. Vyberte Další.Select Next.

  9. Zkontrolujte nastavení a pak vyberte Next (Další).Verify the settings and then select Next.

  10. Ověřte název a umístění projektu a pak vyberte Finish (Dokončit).Verify the project name and location, and then select Finish. Import projektu bude trvat několik minut.The project will take a few minutes to import.

  11. Po importu projektu v levém podokně přejděte do SparkSimpleApp > Src > test > Scala > com > Microsoft1Spark3 Příklad:Once the project has imported, from the left pane navigate to SparkSimpleApp > src > test > scala > com > microsoft > spark > example. Klikněte pravým tlačítkem na MySpeca pak vyberte Odstranit... . Tento soubor pro aplikaci nepotřebujete.Right-click MySpec, and then select Delete.... You do not need this file for the application. V dialogovém okně vyberte OK .Select OK in the dialog box.

  12. V následujících krocích aktualizujete pom. XML a definujete závislosti pro aplikaci Spark Scala.In the subsequent steps, you update the pom.xml to define the dependencies for the Spark Scala application. Pokud chcete, aby se tyto závislosti stáhly a převedly automaticky, musíte nakonfigurovat Maven odpovídajícím způsobem.For those dependencies to be downloaded and resolved automatically, you must configure Maven accordingly.

  13. V nabídce soubor vyberte Nastavení a otevřete okno Nastavení .From the File menu, select Settings to open the Settings window.

  14. V okně Nastavení přejděte na sestavení, spuštění, nasazení > Build Tools > Maven > Import.From the Settings window, navigate to Build, Execution, Deployment > Build Tools > Maven > Importing.

  15. Zaškrtněte políčko importovat projekty Maven automaticky .Select the Import Maven projects automatically checkbox.

  16. Vyberte Apply (Použít) a pak vyberte OK.Select Apply, and then select OK. Pak se vrátíte do okna projektu.You will then be returned to the project window.

    Konfigurace Mavenu pro automatické stahování

  17. V levém podokně přejděte do src > Main > Scala > com. Microsoft. spark. examplea dvakrát klikněte na aplikace . tím otevřete App. Scala.From the left pane, navigate to src > main > scala > com.microsoft.spark.example, and then double-click App to open App.scala.

  18. Nahraďte stávající vzorový kód následujícím kódem a uložte změny.Replace the existing sample code with the following code and save the changes. Tento kód čte data ze souboru HVAC.csv (dostupný ve všech clusterech HDInsight Spark), načítá řádky, které mají v šestém sloupci pouze jednu číslici, a zapisuje výstup do souboru /HVACOut ve výchozím kontejneru úložiště pro cluster.This code reads the data from the HVAC.csv (available on all HDInsight Spark clusters), retrieves the rows that only have one digit in the sixth column, and writes the output to /HVACOut under the default storage container for the 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")
      }
    }
    
  19. V levém podokně dvakrát klikněte na soubor pom.xml.In the left pane, double-click pom.xml.

  20. Mezi <project>\<properties> přidejte následující segmenty:Within <project>\<properties> add the following segments:

      <scala.version>2.11.8</scala.version>
      <scala.compat.version>2.11.8</scala.compat.version>
      <scala.binary.version>2.11</scala.binary.version>
    
  21. Mezi <project>\<dependencies> přidejte následující segmenty:Within <project>\<dependencies> add the following segments:

       <dependency>
         <groupId>org.apache.spark</groupId>
         <artifactId>spark-core_${scala.binary.version}</artifactId>
         <version>2.3.0</version>
       </dependency>
    

    Uložte změny v souboru pom.xml.Save changes to pom.xml.

  22. Vytvořte soubor .jar.Create the .jar file. IntelliJ IDEA umožňuje vytvoření souboru JAR jako artefaktu projektu.IntelliJ IDEA enables creation of JAR as an artifact of a project. Proveďte následující kroky.Perform the following steps.

    1. V nabídce soubor vyberte možnost struktura projektu... .From the File menu, select Project Structure....

    2. V okně struktura projektu přejděte na artefakty > symbol plus + > jar > z modulů se závislostmi... .From the Project Structure window, navigate to Artifacts > the plus symbol + > JAR > From modules with dependencies....

      IntelliJ strukturu projektu NÁPADu přidat jar

    3. V okně vytvořit jar z modulů vyberte ikonu složky v textovém poli hlavní třída .In the Create JAR from Modules window, select the folder icon in the Main Class text box.

    4. V okně Vybrat hlavní třídu vyberte třídu, která se zobrazí ve výchozím nastavení, a pak vyberte OK.In the Select Main Class window, select the class that appears by default and then select OK.

      Výběr třídy IntelliJ NÁPADu struktury projektu

    5. V okně vytvořit jar z modulů zkontrolujte, že je vybraná možnost extrahovat do cílového jar , a pak vyberte OK.In the Create JAR from Modules window, ensure the extract to the target JAR option is selected, and then select OK. Toto nastavení vytvoří jeden soubor JAR se všemi závislostmi.This setting creates a single JAR with all dependencies.

      IntelliJ NÁPADu struktury projektu jar z modulu

    6. Karta rozložení výstupu obsahuje seznam všech jar, které jsou zahrnuty jako součást projektu Maven.The Output Layout tab lists all the jars that are included as part of the Maven project. Můžete vybrat a odstranit soubory, na kterých aplikace Scala nemá přímou závislost.You can select and delete the ones on which the Scala application has no direct dependency. V případě aplikace, kterou tady vytváříte, můžete odebrat všechny soubory kromě posledního (SparkSimpleApp compile output).For the application, you are creating here, you can remove all but the last one (SparkSimpleApp compile output). Vyberte jar, který chcete odstranit, a potom vyberte záporný symbol - .Select the jars to delete and then select the negative symbol -.

      IntelliJ NÁPADu struktury projektu odstranit výstup

      Zajistěte, aby bylo zaškrtnuto políčko zahrnout do sestavení projektu , které zajistí, že jar bude vytvořen pokaždé, když je projekt sestaven nebo aktualizován.Ensure sure the Include in project build checkbox is selected, which ensures that the jar is created every time the project is built or updated. Vyberte použít a pak OK.Select Apply and then OK.

    7. Chcete-li vytvořit jar, přejděte k sestavení > artefakty sestavení > Build.To create the jar, navigate to Build > Build Artifacts > Build. Projekt se zkompiluje přibližně po 30 sekundách.The project will compile in about 30 seconds. Výstupní soubor JAR se vytvoří v adresáři \out\artifacts.The output jar is created under \out\artifacts.

      Výstup artefaktů projektu IntelliJ

Spuštění aplikace v clusteru Apache SparkRun the application on the Apache Spark cluster

Ke spuštění aplikace v clusteru můžete použít následující postupy:To run the application on the cluster, you can use the following approaches:

Vyčištění prostředkůClean up resources

Pokud nebudete tuto aplikaci nadále používat, odstraňte cluster, který jste vytvořili, pomocí následujících kroků:If you're not going to continue to use this application, delete the cluster that you created with the following steps:

  1. Přihlaste se na web Azure Portal.Sign in to the Azure portal.

  2. Do vyhledávacího pole v horní části zadejte HDInsight.In the Search box at the top, type HDInsight.

  3. V části službyvyberte clustery HDInsight .Select HDInsight clusters under Services.

  4. V seznamu clusterů HDInsight, které se zobrazí, vyberte ... vedle clusteru, který jste vytvořili pro účely tohoto kurzu.In the list of HDInsight clusters that appears, select the ... next to the cluster that you created for this tutorial.

  5. Vyberte Odstranit.Select Delete. Vyberte Ano.Select Yes.

Portál HDInsight Azure odstranění clusteruHDInsight azure portal delete cluster

Další krokNext step

V tomto článku jste zjistili, jak vytvořit aplikaci Apache Spark Scala.In this article, you learned how to create an Apache Spark scala application. V dalším článku zjistíte, jak tuto aplikaci spustit v clusteru HDInsight Spark pomocí Livy.Advance to the next article to learn how to run this application on an HDInsight Spark cluster using Livy.