Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Cluster Apache Spark ve službě HDInsight. Pokyny najdete v tématu Vytváření clusterů Apache Spark ve službě Azure HDInsight.
Oracle Java Development Kit. V tomto kurzu se používá Java verze 8.0.202.
Integrované vývojové prostředí Java. Tento článek používá IntelliJ IDEA Community 2018.3.4.
Azure Toolkit for IntelliJ. Viz Instalace sady Azure Toolkit for IntelliJ.
Instalace modulu plug-in Scala pro IntelliJ IDEA
Pomocí následujících kroků nainstalujte modul plug-in Scala:
Otevřete IntelliJ IDEA.
Na úvodní obrazovce přejděte na Konfigurovat>Pluginy a otevřete okno Pluginy.
Vyberte Nainstalovat pro Azure Toolkit pro IntelliJ.
Vyberte Nainstalovat pro plugin Scala, který je zobrazen v novém okně.
Po úspěšné instalaci modulu plug-in je nutné restartovat integrované vývojové prostředí (IDE).
Vytvoření aplikace pomocí IntelliJ
Spusťte IntelliJ IDEA a výběrem možnosti Vytvořit nový projekt otevřete okno Nový projekt.
V levém podokně vyberte Apache Spark/HDInsight .
V hlavním okně vyberte Spark Project (Scala ).
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.
Vyberte Další.
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).
Vyberte Dokončit.
Vytvoření samostatného projektu Scala
Spusťte IntelliJ IDEA a výběrem možnosti Vytvořit nový projekt otevřete okno Nový projekt.
V levém podokně vyberte Maven .
Zadejte sadu Project SDK. Pokud je tato hodnota prázdná, vyberte Nový... a přejděte do instalačního adresáře Java.
Zaškrtněte políčko Vytvořit z archetypu .
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.
Vyberte Další.
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
Vyberte Další.
Ověřte nastavení a pak vyberte Další.
Ověřte název a umístění projektu a pak vyberte Dokončit. Import projektu bude trvat několik minut.
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.
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.
V nabídce Soubor vyberte Nastavení a otevřete okno Nastavení .
V okně Nastavení přejděte na Sestavení, Spuštění, Nasazení>Nástroje pro sestavení>Maven>Import.
Zaškrtněte políčko Automaticky importovat projekty Maven .
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":::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.
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") } }V levém podokně poklikejte na pom.xml.
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>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.Vytvořte soubor .jar. IntelliJ IDEA umožňuje vytvoření souboru JAR jako artefaktu projektu. Proveďte následující kroky.
V nabídce Soubor vyberte Projektová struktura....
V okně Struktura projektu navigujte na Artefakty>symbol plus (+)>JAR>z modulů se závislostmi....
V okně Vytvořit soubor JAR z modulů vyberte ikonu složky v textovém poli Hlavní třída .
V okně Vybrat hlavní třídu vyberte třídu, která se zobrazí ve výchozím nastavení, a pak vyberte OK.
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.
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 -.
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.
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.
Spuštění aplikace v clusteru Apache Spark
Ke spuštění aplikace v clusteru můžete použít následující přístupy:
Zkopírujte soubor JAR aplikace do objektu blob služby Azure Storage přidruženého ke clusteru. K tomu můžete použít AzCopy, nástroj příkazového řádku. K nahrání dat můžete použít i mnoho dalších klientů. Další informace o nich najdete v tématu Nahrání dat pro úlohy Apache Hadoop ve službě HDInsight.
Pomocí Apache Livy odešlete úlohu aplikace vzdáleně do clusteru Spark. Clustery Spark v HDInsight zahrnují Livy, které zpřístupňuje koncové body REST pro vzdálené odesílání úloh Sparku. Další informace najdete v tématu Vzdálené odesílání úloh Apache Spark pomocí Apache Livy s clustery Spark ve službě HDInsight.
Č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:
Přihlaste se do Azure Portalu.
Do vyhledávacího pole v horní části zadejte HDInsight.
V části Služby vyberte clustery HDInsight.
V seznamu clusterů HDInsight, které se zobrazí, vyberte ... vedle clusteru, který jste vytvořili pro účely tohoto kurzu.
Vyberte Odstranit. Vyberte Ano.
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.