Sdílet prostřednictvím


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á Apache Maven jako systém sestavení. 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:

  • Jako systém sestavení použijte Maven.
  • Aktualizujte soubor pom (Project Object Model) a vyřešte závislosti modulů Sparku.
  • Napište aplikaci v jazyce Scala.
  • Vygenerujte soubor JAR, který lze odeslat do clusterů HDInsight Spark.
  • Spusťte aplikaci v clusteru Spark pomocí Livy.

V tomto kurzu se naučíte:

  • Instalace modulu plug-in Scala pro IntelliJ IDEA
  • Použití IntelliJ k vývoji aplikace Scala Maven
  • 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>Pluginy a otevřete okno Pluginy.

    Snímek obrazovky s úvodní obrazovkou IntelliJ

  3. Vyberte Nainstalovat pro Azure Toolkit pro IntelliJ.

    Snímek obrazovky s nástroji IntelliJ Azure Tool Kit.

  4. Vyberte Nainstalovat pro plugin Scala, který je zobrazen v novém okně.

    Snímek obrazovky s modulem plug-in IntelliJ Scala

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

Vytvoření aplikace pomocí IntelliJ

  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 pro Scala pomocí Maven
    • SBT pro správu závislostí a sestavování pro projekt Scala.

    Snímek obrazovky znázorňující vytvoření aplikace

  5. Vyberte Další.

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

    Vlastnictví 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 vyhledejte nebo vyberte složku s vaší 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 Spark2.x. V tomto příkladu se používá Spark 2.3.0 (Scala 2.11.8).

    Výběr sady SDK Spark v IntelliJ IDEA

  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 sadu Project SDK. 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.

    Snímek obrazovky ukazuje vybraný archetyp v okně Nový projekt.

  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

    Snímek obrazovky znázorňující možnost Souřadnice artefaktů v okně Nový projekt

  8. Vyberte Další.

  9. Ověřte nastavení a pak vyberte Další.

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

  11. Jakmile je projekt importován, přejděte z levého podokna na SparkSimpleApp>src>test>scala>com>microsoft>spark>example. 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 stáhly a vyřeš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 na Sestavení, Spuštění, Nasazení>Nástroje pro sestavení>Maven>Import.

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

  16. Vyberte Použíta 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 src>main>scala>com.microsoft.spark.example a poklikáním na App 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 v rámci výchozího kontejneru úložiště pro 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ě poklikejte na pom.xml.

  20. Ve vloženém <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. Do <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 navigujte na Artefakty>symbol plus (+)>JAR>z modulů se závislostmi....

      Přidání souboru JAR do struktury projektu IntelliJ IDEA

    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.

    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.

      Soubor JAR struktury projektu IntelliJ IDEA z modulu

    6. Karta Rozložení výstupu obsahuje seznam všech souborů JAR, které jsou součástí projektu Maven. Můžete vybrat a odstranit ty, u kterých aplikace Scala nemá žádnou 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 -.

      `Smazání výstupu struktury projektu v IntelliJ IDEA`.

      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 poté 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ří ve složce \out\artifacts.

      Výstup artefaktů projektu IntelliJ IDEA

Spuštění aplikace v clusteru Apache Spark

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

Čištění zdrojů

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 do Azure Portalu.

  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.

Snímek obrazovky znázorňující, jak odstranit cluster HDInsight prostřednictvím webu 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 se dozvíte, jak tuto aplikaci spustit v clusteru HDInsight Spark pomocí Livy.