Kurz: Vytvoření aplikace Scala Maven pro Apache Spark HDInsight pomocí IntelliJ

V tomto kurzu se dozvíte, jak vytvořit aplikaci Apache Spark napsané v scalě pomocí Apache Mavenu s IntelliJ IDEA. V tomto článku se jako sestavující systém používá 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

Modul plug-in Scala nainstalujete následujícím postupem:

  1. Otevřete IntelliJ IDEA.

  2. Na úvodní obrazovce přejděte na Configure > Plugins (Konfigurovat moduly plug-in). Otevře se okno Plugins (Moduly plug-in).

    Povolení modulu plug-in Scala v IntelliJ IDEA

  3. Jako modul plug-in Scala, který se zobrazí v novém okně, vyberte Nainstalovat.

    Instalace modulu plug-in Scala v IntelliJ IDEA

  4. 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 vyberte Create New Project (Vytvořit nový Project) a otevřete okno New Project (Nový pracovní Project).

  2. V Apache Spark podokně vyberte Apache Spark/HDInsight.

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

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

    • Maven pro podporu průvodce vytvořením projektu Scala
    • SBT pro správu závislostí a sestavení pro projekt Scala.

    Dialogové okno Nový Project IntelliJ

  5. Vyberte Další.

  6. V okně Project zadejte následující informace:

    Vlastnost Popis
    Název projektu Zadejte název.
     Project Umístění Zadejte umístění, do které chcete projekt uložit.
    Project SDK Toto pole bude při prvním použití IDEA prázdné. Vyberte Nový... a přejděte na svou JDK.
    Verze Sparku Průvodce vytvořením integruje správnou verzi pro 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. Tento příklad používá Spark 2.3.0 (Scala 2.11.8).

    Výběr sady Spark SDK v IntelliJ IDEA

  7. Vyberte Dokončit.

Vytvoření samostatného projektu Scala

  1. Spusťte IntelliJ IDEA a vyberte Create New Project (Vytvořit nový Project) a otevřete okno New Project (Nový pracovní Project).

  2. V levém podokně vyberte Maven.

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

  4. Zaškrtněte políčko Create from archetype (Vytvořit z archetypu).

  5. V 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 zobrazuje vybraný archetyp v okně Project obrazovky.

  6. Vyberte Další.

  7. Rozbalte položku Artifact Coordinates (Souřadnice artefaktů). Zadejte relevantní hodnoty pro GroupId a ArtifactId. Název a Umístění se automaticky vyplňují. V tomto kurzu se používají následující hodnoty:

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

    Snímek obrazovky znázorňuje možnost Artifact Coordinates (Souřadnice artefaktů) v okně New Project (Nové souřadnice artefaktů).

  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 v levém podokně na příklad SparkSimpleApp > src > test > scala > com > microsoft > spark > . Klikněte pravým tlačítkem 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 aktualizujetepom.xmltak, aby definujte 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 File (Soubor) vyberte Nastavení a otevřete okno Nastavení.

  14. V okně Nastavení přejděte na Build, Execution, Deployment Build Tools Maven Importing (Sestavení, spuštění, Nasazení > buildových nástrojů > Maven > Import).

  15. Zaškrtněte políčko Import Maven projects automatically (Importovat projekty Maven automaticky).

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

    Konfigurace Mavenu pro automatické stahování

  17. V levém podokně přejděte na src > main > scala > com.microsoft.spark.example a poklikejte na App a 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 načítá data z HVAC.csv (k dispozici ve všech clusterech HDInsight Spark). Načte řádky, které mají v šestém sloupci jenom jednu číslici. A zapíše výstup do /HVACOut ve výchozím 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ě 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>
    

    Uložte změny v souboru 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 File (Soubor) vyberte Project Structure... (Struktura...).

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

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

    3. V okně Create JAR from Modules (Vytvořit SOUBOR JAR z modulů) vyberte ikonu složky v textovém poli Main Class (Hlavní třída).

    4. V okně Select Main Class (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ě Create JAR from Modules (Vytvořit soubor JAR z modulů) zkontrolujte, že je vybraná možnost extract to the target JAR (Extrahovat do cílového souboru JAR) a pak vyberte OK. Toto nastavení vytvoří jeden soubor JAR se všemi závislostmi.

      Soubor JAR se strukturou 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 soubory, na kterých aplikace Scala nemá přímou závislost. Pro aplikaci, kterou tady vytváříte, můžete odebrat všechno až na poslední ( výstup kompilace SparkSimpleApp). Vyberte soubory JAR, které chcete odstranit, a pak vyberte záporný symbol - .

      Výstup odstranění struktury projektu 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 vytvoření nebo aktualizaci projektu. Vyberte Použít a pak OK.

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

      Výstup artefaktu projektu IntelliJ IDEA

Spuštění aplikace v clusteru Apache Spark clusteru

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

  • Zkopírujte soubor JAR aplikace do Azure Storage objektu blob přidruženého ke clusteru. Můžete k tomu použít nástroj příkazového řádku AzCopy. Existuje také řada dalších klientů, které můžete k nahrání dat použít. Další informace o nich najdete v Upload pro úlohy Apache Hadoop HDInsight.

  • Pomocí Apache Livy vzdáleně odešlete úlohu aplikace do clusteru Spark. Clustery Spark ve službě HDInsight zahrnují rozhraní Livy, které zveřejňuje koncové body REST pro vzdálené odesílání úloh Sparku. Další informace najdete v tématu Vzdálené odesílání Apache Spark pomocí Apache Livy s clustery Spark ve službě HDInsight.

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

Pokud tuto aplikaci nadále používat nadále odstraňovat odstraňovat cluster, který jste vytvořili, pomocí následujících kroků:

  1. Přihlaste se k webu Azure Portal.

  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 tento kurz.

  5. Vyberte Odstranit. Vyberte Ano.

Snímek obrazovky, který znázorňuje, jak odstranit cluster HDInsight prostřednictvím Azure Portal

Další krok

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