Oktatóanyag: Scala Maven-alkalmazás létrehozása az Apache Sparkhoz a HDInsightban az IntelliJ használatával
Ebben az oktatóanyagban megtudhatja, hogyan hozhat létre Egy Scalában írt Apache Spark-alkalmazást az Apache Maven és az IntelliJ IDEA használatával. A cikk az Apache Maven-t használja buildrendszerként. És egy meglévő Maven-archetípussal kezdődik az IntelliJ IDEA által biztosított Scalához. A Scala-alkalmazás IntelliJ IDEA-ban történő létrehozása az alábbi lépésekből áll:
- Buildelési rendszerként a Mavent használja.
- A Spark-modul függőségeinek feloldásához frissítse a Project Object Model- (POM-) fájlt.
- Írja meg az alkalmazást a Scalában.
- Hozzon létre egy olyan JAR-fájlt, amit el lehet küldeni a HDInsight Spark-fürtöknek.
- Futtassa az alkalmazást a Sparkon a Livy használatával.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Scala beépülő modul az IntelliJ IDEA-hoz
- Az IntelliJ használata Scala Maven-alkalmazások fejlesztéséhez
- Önálló Scala-projekt létrehozása
Előfeltételek
Apache Spark-fürt megléte a HDInsightban. További útmutatásért lásd: Apache Spark-fürt létrehozása az Azure HDInsightban.
Oracle Java fejlesztői készlet. Ez az oktatóanyag a Java 8.0.202-es verzióját használja.
Java IDE. Ez a cikk az IntelliJ IDEA Community 2018.3.4-et használja.
Azure Toolkit for IntelliJ. Lásd : Az Azure Toolkit for IntelliJ telepítése.
Scala beépülő modul az IntelliJ IDEA-hoz
A Scala beépülő modul telepítéséhez hajtsa végre az alábbi lépéseket:
Nyissa meg az IntelliJ IDEA-t.
Az üdvözlőképernyőn lépjen a Beépülő modulok konfigurálása>elemre a Beépülő modulok ablak megnyitásához.
Válassza az Azure Toolkit for IntelliJ telepítése lehetőséget.
Válassza a Telepítés lehetőséget az új ablakban megjelenő Scala beépülő modulhoz.
A beépülő modul sikeres telepítését követően újra kell indítania az IDE-t.
Alkalmazás létrehozása az IntelliJ használatával
Indítsa el az IntelliJ IDEA-t, és válassza az Új projekt létrehozása lehetőséget az Új projekt ablak megnyitásához.
Válassza az Apache Spark/HDInsight lehetőséget a bal oldali panelen.
Válassza a Spark Project (Scala) lehetőséget a főablakban.
A Build eszköz legördülő listájában válasszon az alábbi értékek közül:
- A Maven a Scala projektlétrehozási varázslójának támogatása.
- SBT a függőségek kezeléséhez és a Scala-projekt létrehozásához.
Válassza a Tovább lehetőséget.
Az Új projekt ablakban adja meg a következő információkat:
Tulajdonság Leírás Projekt neve Adjon meg egy nevet. Projekt helye Adja meg a projekt mentésének helyét. Project SDK Ez a mező üres lesz az IDEA első használatakor. Válassza az Új lehetőséget... és lépjen a JDK-ra. Spark-verzió A létrehozási varázsló integrálja a Spark SDK és a Scala SDK megfelelő verzióját. Ha a Spark-fürt verziója 2.0-nál korábbi, válassza a Spark 1.x lehetőséget. Máskülönben válassza a Spark2.x lehetőséget. Ez a példa a Spark 2.3.0 -t (Scala 2.11.8) használja. Válassza a Befejezés lehetőséget.
Önálló Scala-projekt létrehozása
Indítsa el az IntelliJ IDEA-t, és válassza az Új projekt létrehozása lehetőséget az Új projekt ablak megnyitásához.
A bal oldali panelen válassza a Maven lehetőséget.
Adjon meg egy Projekt SDK-t. Ha üres, válassza az Új... lehetőséget, és keresse meg a Java telepítési könyvtárát.
Jelölje be a Létrehozás archetípusból jelölőnégyzetet.
Az archetípusok listájában válassza a lehetőséget
org.scala-tools.archetypes:scala-archetype-simple
. Ez az archetípus létrehozza a megfelelő könyvtárstruktúrát, és letölti a Scala-program írásához szükséges alapértelmezett függőségeket.Válassza a Tovább lehetőséget.
Bontsa ki az összetevő koordinátáit. Adja meg a GroupId és az ArtifactId megfelelő értékeit. A név és a hely automatikusan fel lesz töltve. Ebben az oktatóanyagban a következő értékeket használjuk:
- GroupId: com.microsoft.spark.example
- ArtifactId: SparkSimpleApp
Válassza a Tovább lehetőséget.
Ellenőrizze a beállításokat, majd válassza a Next (Tovább) lehetőséget.
Ellenőrizze a projekt nevét és helyét, majd válassza a Finish (Befejezés) lehetőséget. A projekt importálása néhány percet vesz igénybe.
A projekt importálása után a bal oldali panelen lépjen a SparkSimpleApp>src>test>scala>com>microsoft>spark-példához.> Kattintson a jobb gombbal a MySpec elemre, majd válassza a Törlés...lehetőséget. Nincs szüksége erre a fájlra az alkalmazáshoz. Válassza az OK gombot a párbeszédpanelen.
A későbbi lépésekben frissíti a pom.xml a Spark Scala-alkalmazás függőségeinek meghatározásához. Ahhoz, hogy ezek a függőségek automatikusan letöltődjenek és feloldódjanak, konfigurálnia kell a Mavent.
A Fájl menüben válassza a Gépház lehetőséget a Gépház ablak megnyitásához.
A Gépház ablakban keresse meg a Build, Execution, Deployment>Build Tools>Maven>Importing lehetőséget.
Jelölje be a Maven-projektek automatikus importálása jelölőnégyzetet.
Válassza az Apply (Alkalmaz) lehetőséget, majd kattintson az OK gombra. Ezután visszakerül a projektablakba.
:::image type="content" source="./media/apache-spark-create-standalone-application/configure-maven-download.png" alt-text="Configure Maven for automatic downloads." border="true":::
A bal oldali panelen lépjen az src>fő>scala>com.microsoft.spark.example lapra, majd kattintson duplán az App.scala megnyitásához.
Cserélje le a meglévő mintakódot a következő kódra, majd mentse a módosításokat. Ez a kód beolvassa az adatokat a HVAC.csv (minden HDInsight Spark-fürtön elérhető). Lekéri azokat a sorokat, amelyeknek csak egy számjegye van a hatodik oszlopban. A kimenetet pedig a /HVACOut fájlba írja a fürt alapértelmezett tárolója alatt.
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") } }
A bal oldali panelen kattintson duplán a pom.xml fájlra.
A
<project>\<properties>
részben adja hozzá a következő szegmenseket:<scala.version>2.11.8</scala.version> <scala.compat.version>2.11.8</scala.compat.version> <scala.binary.version>2.11</scala.binary.version>
A
<project>\<dependencies>
részben adja hozzá a következő szegmenseket:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_${scala.binary.version}</artifactId> <version>2.3.0</version> </dependency>
Save changes to pom.xml.
Hozza létre a .jar kiterjesztésű fájlt. Az IntelliJ IDEA lehetővé teszi a JAR-fájlok projektösszetevőként való létrehozását. Tegye a következőket.
A Fájl menüben válassza a Projektstruktúra...lehetőséget.
A Project Structure (Projektstruktúra) ablakban keresse meg az Artifacts>(Összetevők) pluszjelet +>JAR>A függőségekkel rendelkező modulokból....
A Modulok jar létrehozása ablakban válassza a mappaikont a Főosztály szövegmezőben.
A Főosztály kiválasztása ablakban válassza ki az alapértelmezés szerint megjelenő osztályt, majd kattintson az OK gombra.
A Jar létrehozása modulokból ablakban győződjön meg arról, hogy a cél JAR-beállítás kivonata ki van jelölve, majd kattintson az OK gombra. Ez a beállítás egyetlen JAR-fájlt hoz létre az összes függőséggel együtt.
A Kimenetelrendezés lap felsorolja a Maven-projekt részeként szereplő összes jart. Itt kijelölheti és törölheti azokat, amelyek nincsenek közvetlen függőségi viszonyban a Scala-alkalmazással. Az itt létrehozott alkalmazás esetében az utolsó ki nem távolítható el (SparkSimpleApp fordítási kimenete). Jelölje ki a törölni kívánt üvegeket, majd válassza ki a negatív szimbólumot -.
Győződjön meg arról, hogy a Belefoglalás a projekt buildbe jelölőnégyzet be van jelölve. Ez a beállítás biztosítja, hogy a jar minden alkalommal létrejön, amikor a projekt létrejön vagy frissül. Válassza az Alkalmaz , majd az OK gombot.
A jar létrehozásához keresse meg a Build>Artifacts>Build webhelyet. A projekt körülbelül 30 másodperc alatt lesz lefordítva. A kimeneti JAR-fájl az \out\artifacts mappában jön létre.
Az alkalmazás futtatása az Apache Spark-fürtön
Az alkalmazás fürtön történő futtatásához a következő módszereket használhatja:
Másolja az alkalmazás jart a fürthöz társított Azure Storage-blobba . Ehhez az AzCopy parancssori segédprogramot használhatja. Az adatok feltöltésére számos egyéb kliens is rendelkezésre áll. Ezekről bővebben az Apache Hadoop-feladatok adatainak feltöltése a HDInsightban című témakörben talál.
Az Apache Livy használatával távolról küldhet el egy alkalmazásfeladatot a Spark-fürtnek. A HDInsight-alapú Spark-fürtök tartalmazzák a Livyt, amely elvégzi a REST-végpontok közzétételét, így lehetővé teszi a Spark-feladatok távoli elküldését. További információ: Apache Spark-feladatok távoli elküldése az Apache Livy és a HdInsight Spark-fürtöinek használatával.
Az erőforrások eltávolítása
Ha nem folytatja az alkalmazás használatát, törölje a létrehozott fürtöt az alábbi lépésekkel:
Jelentkezzen be az Azure Portalra.
A felül található Keresőmezőbe írja be a HDInsight parancsot.
Válassza ki a HDInsight-fürtöket a Szolgáltatások területen.
A megjelenő HDInsight-fürtök listájában válassza ki az oktatóanyaghoz létrehozott fürt melletti ... elemet.
Válassza a Törlés lehetőséget. Válassza az Igen lehetőséget.
Következő lépés
Ebben a cikkben megtanulta, hogyan hozhat létre Apache Spark scala-alkalmazást. Folytassa a következő cikkel, amelyben megtudhatja, hogyan futtathatja ezt az alkalmazást egy HDInsight Spark-fürtön, a Livy használatával.