Share via


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

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:

  1. Nyissa meg az IntelliJ IDEA-t.

  2. 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.

    Screenshot showing IntelliJ Welcome Screen.

  3. Válassza az Azure Toolkit for IntelliJ telepítése lehetőséget.

    Screenshot showing IntelliJ Azure Tool Kit.

  4. Válassza a Telepítés lehetőséget az új ablakban megjelenő Scala beépülő modulhoz.

    Screenshot showing IntelliJ Scala Plugin.

  5. 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

  1. 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.

  2. Válassza az Apache Spark/HDInsight lehetőséget a bal oldali panelen.

  3. Válassza a Spark Project (Scala) lehetőséget a főablakban.

  4. 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.

    Screenshot showing create application.

  5. Válassza a Tovább lehetőséget.

  6. 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.

    IntelliJ IDEA Selecting the Spark SDK.

  7. Válassza a Befejezés lehetőséget.

Önálló Scala-projekt létrehozása

  1. 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.

  2. A bal oldali panelen válassza a Maven lehetőséget.

  3. 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.

  4. Jelölje be a Létrehozás archetípusból jelölőnégyzetet.

  5. 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.

    Screenshot shows the selected archetype in the New Project window.

  6. Válassza a Tovább lehetőséget.

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

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

  8. Válassza a Tovább lehetőséget.

  9. Ellenőrizze a beállításokat, majd válassza a Next (Tovább) lehetőséget.

  10. 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.

  11. 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.

  12. 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.

  13. A Fájl menüben válassza a Gépház lehetőséget a Gépház ablak megnyitásához.

  14. A Gépház ablakban keresse meg a Build, Execution, Deployment>Build Tools>Maven>Importing lehetőséget.

  15. Jelölje be a Maven-projektek automatikus importálása jelölőnégyzetet.

  16. 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":::
    
  17. 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.

  18. 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")
        }
    }
    
  19. A bal oldali panelen kattintson duplán a pom.xml fájlra.

  20. 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>
    
  21. 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.
    
  22. 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.

    1. A Fájl menüben válassza a Projektstruktúra...lehetőséget.

    2. A Project Structure (Projektstruktúra) ablakban keresse meg az Artifacts>(Összetevők) pluszjelet +>JAR>A függőségekkel rendelkező modulokból....

      `IntelliJ IDEA project structure add jar`.

    3. A Modulok jar létrehozása ablakban válassza a mappaikont a Főosztály szövegmezőben.

    4. A Főosztály kiválasztása ablakban válassza ki az alapértelmezés szerint megjelenő osztályt, majd kattintson az OK gombra.

      `IntelliJ IDEA project structure select class`.

    5. 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.

      IntelliJ IDEA project structure jar from module.

    6. 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 -.

      `IntelliJ IDEA project structure delete output`.

      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.

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

      IntelliJ IDEA project artifact output.

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:

  1. Jelentkezzen be az Azure Portalra.

  2. A felül található Keresőmezőbe írja be a HDInsight parancsot.

  3. Válassza ki a HDInsight-fürtöket a Szolgáltatások területen.

  4. A megjelenő HDInsight-fürtök listájában válassza ki az oktatóanyaghoz létrehozott fürt melletti ... elemet.

  5. Válassza a Törlés lehetőséget. Válassza az Igen lehetőséget.

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

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.