Kurz: Vytvoření aplikace Scala Maven pro Apache Spark ve službě HDInsight pomocí IntelliJ

V tomto kurzu se dozvíte, jak vytvořit aplikaci Apache Spark napsanou v jazyce Scala pomocí Apache Mavenu s IntelliJ IDEA. Tento článek používá Jako systém sestavení Apache Maven. A začíná existujícím archetypem Maven pro Scala, který poskytuje IntelliJ IDEA. Vytvoření aplikace Scala v IntelliJ IDEA zahrnuje následující kroky:

  • Použití Mavenu jako sestavovacího systému
  • Aktualizace souboru POM (Project Object Model) pro zajištění převodu závislostí modulů Sparku
  • Napsání aplikace v jazyce Scala
  • Vygenerování souboru JAR, který je možné odeslat do clusterů HDInsight Spark
  • Spuštění aplikace v clusteru Spark pomocí Livy

V tomto kurzu se naučíte:

  • Instalace modulu plug-in Scala pro IntelliJ IDEA
  • Vývoj aplikace Scala Maven pomocí IntelliJ
  • Vytvoření samostatného projektu Scala

Požadavky

Instalace modulu plug-in Scala pro IntelliJ IDEA

Pomocí následujících kroků nainstalujte modul plug-in Scala:

  1. Otevřete IntelliJ IDEA.

  2. Na úvodní obrazovce přejděte na Konfigurovat>moduly plug-in a otevřete okno Moduly plug-in.

    Screenshot showing IntelliJ Welcome Screen.

  3. Vyberte Nainstalovat pro sadu Azure Toolkit for IntelliJ.

    Screenshot showing IntelliJ Azure Tool Kit.

  4. Vyberte Nainstalovat pro modul plug-in Scala, který je doporučený v novém okně.

    Screenshot showing IntelliJ Scala Plugin.

  5. Po úspěšné instalaci modulu plug-in je potřeba restartovat integrované vývojové prostředí (IDE).

Použití IntelliJ k vytvoření aplikace

  1. Spusťte IntelliJ IDEA a výběrem možnosti Vytvořit nový projekt otevřete okno Nový projekt.

  2. V levém podokně vyberte Apache Spark/HDInsight .

  3. V hlavním okně vyberte Spark Project (Scala ).

  4. V rozevíracím seznamu Nástroje sestavení vyberte jednu z následujících hodnot:

    • Podpora Průvodce vytvořením projektu Maven pro Scala
    • SBT pro správu závislostí a sestavování pro projekt Scala.

    Screenshot showing create application.

  5. Vyberte Další.

  6. V okně Nový projekt zadejte následující informace:

    Vlastnost Popis
    Název projektu Zadejte název.
    Umístění projektu Zadejte umístění pro uložení projektu.
    Project SDK Toto pole bude prázdné při prvním použití funkce IDEA. Vyberte Nový... a přejděte na sadu JDK.
    Verze Sparku Průvodce vytvořením integruje správnou verzi sady Spark SDK a Scala SDK. Pokud je verze clusteru Spark nižší než 2.0, vyberte Spark 1.x. V opačném případě vyberte Spark 2.x. V tomto příkladu se používá Spark 2.3.0 (Scala 2.11.8).

    IntelliJ IDEA Selecting the Spark SDK.

  7. Vyberte Dokončit.

Vytvoření samostatného projektu Scala

  1. Spusťte IntelliJ IDEA a výběrem možnosti Vytvořit nový projekt otevřete okno Nový projekt.

  2. V levém podokně vyberte Maven .

  3. Zadejte Project SDK (Sada SDK projektu). Pokud je tato hodnota prázdná, vyberte Nový... a přejděte do instalačního adresáře Java.

  4. Zaškrtněte políčko Vytvořit z archetypu.

  5. Ze seznamu archetypů vyberte org.scala-tools.archetypes:scala-archetype-simple. Tento archetyp vytvoří správnou adresářovou strukturu a stáhne požadované výchozí závislosti pro zápis programu Scala.

    Screenshot shows the selected archetype in the New Project window.

  6. Vyberte Další.

  7. Rozbalit souřadnice artefaktů Zadejte relevantní hodnoty pro GroupId a ArtifactId. Název a umístění se automaticky vyplní. V tomto kurzu se používají následující hodnoty:

    • GroupId: com.microsoft.spark.example
    • ArtifactId: SparkSimpleApp

    Screenshot shows the Artifact Coordinates option in the New Project window.

  8. Vyberte Další.

  9. Zkontrolujte nastavení a pak vyberte Next (Další).

  10. Ověřte název a umístění projektu a pak vyberte Finish (Dokončit). Import projektu bude trvat několik minut.

  11. Po importu projektu přejděte z levého podokna na příklad testovací>scala>com>microsoft>sparku>sparku Sparku na SparkSimpleApp.>> Klikněte pravým tlačítkem myši na MySpec a pak vyberte Odstranit.... Tento soubor pro aplikaci nepotřebujete. V dialogovém okně vyberte OK .

  12. V pozdějších krocích aktualizujete pom.xml , abyste definovali závislosti pro aplikaci Spark Scala. Aby se tyto závislosti stahovaly a přeložily automaticky, musíte nakonfigurovat Maven.

  13. V nabídce Soubor vyberte Nastavení a otevřete okno Nastavení.

  14. V okně Nastavení přejděte do importu nástroje sestavení sestavení sestavení sestavení Sestavení Nástroje nástroje nástroje pro sestavení>>v Nastavení.>

  15. Zaškrtněte políčko Automaticky importovat projekty Maven.

  16. Vyberte Apply (Použít) a pak vyberte OK. Pak se vrátíte do okna projektu.

    :::image type="content" source="./media/apache-spark-create-standalone-application/configure-maven-download.png" alt-text="Configure Maven for automatic downloads." border="true":::
    
  17. V levém podokně přejděte na hlavní>scala>src>com.microsoft.spark.example a poklikáním na aplikaci otevřete App.scala.

  18. Nahraďte stávající vzorový kód následujícím kódem a uložte změny. Tento kód čte data z HVAC.csv (k dispozici ve všech clusterech HDInsight Spark). Načte řádky, které mají v šestém sloupci pouze jednu číslici. Zapíše výstup do /HVACOut pod výchozím kontejnerem úložiště clusteru.

    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.

  20. Mezi <project>\<properties> přidejte následující segmenty:

    <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:

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.binary.version}</artifactId>
        <version>2.3.0</version>
    </dependency>
    
    Save changes to pom.xml.
    
  22. Vytvořte soubor .jar. IntelliJ IDEA umožňuje vytvoření souboru JAR jako artefaktu projektu. Proveďte následující kroky.

    1. V nabídce Soubor vyberte Projektová struktura....

    2. V okně Struktura projektu přejděte na Artefakty>symbol plus +>JAR>z modulů se závislostmi....

      `IntelliJ IDEA project structure add jar`.

    3. V okně Vytvořit soubor JAR z modulů vyberte ikonu složky v textovém poli Hlavní třída .

    4. V okně Vybrat hlavní třídu vyberte třídu, která se zobrazí ve výchozím nastavení, a pak vyberte OK.

      `IntelliJ IDEA project structure select class`.

    5. V okně Vytvořit soubor JAR z modulů se ujistěte, že je vybraná možnost extrahovat do cílového souboru JAR , a pak vyberte OK. Toto nastavení vytvoří jeden soubor JAR se všemi závislostmi.

      IntelliJ IDEA project structure jar from module.

    6. Karta Rozložení výstupu obsahuje seznam všech souborů JAR, které jsou součástí projektu Maven. Můžete vybrat a odstranit soubory, na kterých aplikace Scala nemá přímou závislost. Pro aplikaci, kterou tady vytváříte, můžete odebrat všechny kromě posledního (výstup kompilace SparkSimpleApp). Vyberte soubory JAR, které chcete odstranit, a pak vyberte záporný symbol -.

      `IntelliJ IDEA project structure delete output`.

      Ujistěte se, že je zaškrtnuté políčko Zahrnout do sestavení projektu. Tato možnost zajistí, že se soubor JAR vytvoří při každém sestavení nebo aktualizaci projektu. Vyberte Použít a pak OK.

    7. Pokud chcete vytvořit soubor JAR, přejděte do sestavení>sestavení artefaktů>sestavení. Projekt se zkompiluje přibližně za 30 sekund. Výstupní soubor JAR se vytvoří v adresáři \out\artifacts.

      IntelliJ IDEA project artifact output.

Spuštění aplikace v clusteru Apache Spark

Ke spuštění aplikace v clusteru můžete použít následující postupy:

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

Pokud nebudete tuto aplikaci dál používat, odstraňte cluster, který jste vytvořili, pomocí následujícího postupu:

  1. Přihlaste se k portálu Azure.

  2. Do vyhledávacího pole v horní části zadejte HDInsight.

  3. V části Služby vyberte clustery HDInsight.

  4. V seznamu clusterů HDInsight, které se zobrazí, vyberte ... vedle clusteru, který jste vytvořili pro účely tohoto kurzu.

  5. Vyberte Odstranit. Vyberte Ano.

Screenshot showing how to delete an HDInsight cluster via the Azure portal.

Další krok

V tomto článku jste se dozvěděli, jak vytvořit aplikaci Apache Spark scala. V dalším článku zjistíte, jak tuto aplikaci spustit v clusteru HDInsight Spark pomocí Livy.