Adatátalakítás a felhőben egy Spark-tevékenység az Azure Data Factoryban való használatával

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Ebben az oktatóanyagban egy Azure Data Factory-folyamatot hoz létre az Azure Portal használatával. Ez a folyamat egy Spark-tevékenységgel és egy igény szerinti Azure HDInsight társított szolgáltatással alakítja át az adatokat.

Az oktatóanyagban az alábbi lépéseket fogja végrehajtani:

  • Adat-előállító létrehozása
  • Hozzon létre egy Spark-tevékenységet használó folyamatot.
  • Folyamat futtatásának aktiválása
  • A folyamat futásának monitorozása.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Előfeltételek

Megjegyzés

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

  • Azure Storage-fiók. Létrehoz egy Python-szkriptet és egy bemeneti fájlt, és feltölti őket az Azure Storage-be. A Spark-program kimenetét ebben a tárfiókban tárolja a rendszer. Az igény szerinti Spark-fürt ugyanezt a tárfiókot használja elsődleges tárterületként.

Megjegyzés

A HdInsight csak az általános célú, standard szintű tárfiókokat támogatja. Győződjön meg róla, hogy nem prémium szintű tárfiókot vagy blobfiókot adott meg.

Python-szkript feltöltése a Blob Storage-fiókba

  1. Hozzon létre egy WordCount_Spark.py nevű Python-fájlt a következő tartalommal:

    import sys
    from operator import add
    
    from pyspark.sql import SparkSession
    
    def main():
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/inputfiles/minecraftstory.txt").rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' ')) \
            .map(lambda x: (x, 1)) \
            .reduceByKey(add)
        counts.saveAsTextFile("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/outputfiles/wordcount")
    
        spark.stop()
    
    if __name__ == "__main__":
        main()
    
  2. Cserélje le <a storageAccountName> nevet az Azure-tárfiók nevére. Ezután mentse a fájlt.

  3. Az Azure Blob Storage-ban hozzon létre egy adftutorial nevű tárolót, ha még nem létezik.

  4. Hozzon létre egy spark mappát.

  5. Hozzon létre egy script almappát a spark mappában.

  6. Töltse fel a WordCount_Spark.py fájlt a szkript almappába.

A bemeneti fájl feltöltése

  1. Hozzon létre egy minecraftstory.txt nevű fájlt némi szöveges tartalommal. A Spark-program megszámolja a szavak számát ebben a szövegben.
  2. Hozzon létre egy inputfiles nevű almappát a spark mappában.
  3. Töltse fel a minecraftstory.txt fájlt az inputfiles almappába.

Adat-előállító létrehozása

  1. Indítsa el a Microsoft Edge vagy a Google Chrome böngészőt. A Data Factory felhasználói felületének használata jelenleg csak a Microsoft Edge-ben és a Google Chrome-ban támogatott.

  2. Kattintson az Új elemre a bal oldali menüben, majd az Adatok + analitika, végül a Data Factory elemre.

    Data Factory selection in the &quot;New&quot; pane

  3. Az Új adat-előállító lap Név mezőjében adja meg az ADFTutorialDataFactory értéket.

    &quot;New data factory&quot; pane

    Az Azure data factory nevének globálisan egyedinek kell lennie. Ha a következő hibát látja, módosítsa az adat-előállító nevét. (Például használja <a yournameADFTutorialDataFactory> parancsot). A Data Factory-összetevők elnevezési szabályait a Data Factory elnevezési szabályait ismertető cikkben találja.

    Error when a name is not available

  4. Előfizetés: válassza ki azt az Azure-előfizetést, amelyben az adat-előállítót létre szeretné hozni.

  5. Erőforráscsoport: hajtsa végre a következő lépések egyikét:

    • Válassza a Meglévő használata lehetőséget, és válasszon ki egy meglévő erőforráscsoportot a legördülő listából.
    • Válassza az Új létrehozása lehetőséget, és adja meg egy erőforráscsoport nevét.

    A rövid útmutató egyes lépései azt feltételezik, hogy az ADFTutorialResourceGroup nevet adta az erőforráscsoportnak. Az erőforráscsoportokkal kapcsolatos információkért tekintse meg a Using resource groups to manage your Azure resources (Erőforráscsoportok használata az Azure-erőforrások kezeléséhez) című cikket.

  6. A Verzió résznél válassza a V2 értéket.

  7. Hely: válassza ki az adat-előállító helyét.

    Azon Azure-régiók megtekintéséhez, amelyekben jelenleg elérhető a Data Factory, a következő lapon válassza ki az Önt érdeklő régiókat, majd bontsa ki az Elemzés részt, és keresse meg a Data Factory: Elérhető termékek régiók szerint szakaszt. A Data Factory által használt adattárak (Azure Storage, Azure SQL Database stb.) és számítási erőforrások (HDInsight stb.) más régiókban is lehetnek.

  8. Válassza a Létrehozás lehetőséget.

  9. A létrehozás befejezése után megjelenik az Adat-előállító lap. Válassza a Author & Monitor csempét a Data Factory felhasználói felületi alkalmazás külön lapon való elindításához.

    Home page for the data factory, with the &quot;Author & Monitor&quot; tile

Társított szolgáltatások létrehozása

Ebben a szakaszban két társított szolgáltatást hoz létre:

  • Egy Azure Storage-beli társított szolgáltatást, amely egy Azure Storage-fiókot társít az adat-előállítóhoz. Ezt a tárterületet csak az igény szerinti HDInsight-fürt használja. Ez tartalmazza a futtatni kívánt Spark-szkriptet is.
  • Igény szerinti HDInsight társított szolgáltatás. Az Azure Data Factory automatikusan létrehoz egy HDInsight-fürtöt, és futtatja a Spark programot. Ezt követően pedig törli a HDInsight-fürtöt, miután a fürt egy előre meghatározott ideig tétlen volt.

Azure Storage-beli társított szolgáltatás létrehozása

  1. A kezdőlapon váltson a bal oldali panel Kezelés lapjára.

    Screenshot that shows the Manage tab.

  2. Kattintson az ablak alján látható Kapcsolatok, majd az + Új elemre.

    Buttons for creating a new connection

  3. Az Új társított szolgáltatás ablakban válassza az Adattár>Azure Blob Storage lehetőséget, majd kattintson a Folytatás elemre.

    Selecting the &quot;Azure Blob Storage&quot; tile

  4. A Storage-fiók neve mezőben válassza ki a nevet a listából, majd kattintson a Mentés gombra.

    Box for specifying the storage account name

Igény szerinti HDInsight társított szolgáltatás létrehozása

  1. Kattintson ismét az + Új gombra egy további társított szolgáltatás létrehozásához.

  2. Az Új társított szolgáltatás ablakban válassza a Compute>Azure HDInsight lehetőséget, majd kattintson a Folytatás gombra.

    Selecting the &quot;Azure HDInsight&quot; tile

  3. Az Új társított szolgáltatás ablakban végezze el az alábbi lépéseket:

    a. A Név mezőben adja meg a következőt: AzureHDInsightLinkedService.

    b. Győződjön meg arról, hogy az On-demand HDInsight (Igény szerinti HDInsight) van kiválasztva a Típus elemnél.

    c. Az Azure Storage Társított szolgáltatás esetében válassza az AzureBlobStorage1 lehetőséget. Ezt a társított szolgáltatást korábban hozta létre. Ha másik nevet használt, adja meg a megfelelő nevet.

    d. Válasza a sparkfürttípust.

    e. Adja meg annak az egyszerű szolgáltatásnak az azonosítóját, amely rendelkezik a HDInsight-fürt létrehozásához szükséges engedéllyel.

    A szolgáltatásnévnek az előfizetés vagy a létrejövő fürtnek helyet adó erőforráscsoport Közreműködő szerepkörének tagjának kell lennie. További információk: Egy Azure Active Directory-alkalmazás és egyszerű szolgáltatás létrehozása. A szolgáltatásnév azonosítója megegyezik az alkalmazásazonosítóval, a szolgáltatásnévkulcs pedig egyenértékű az ügyfélkód értékével.

    f. A Szolgáltatásnév kulcsa mezőben adja meg a kulcsot.

    : Az Erőforráscsoport beállításnál válassza ki az adat-előállító létrehozásához használt erőforráscsoportot. Ekkor a Spark-fürt létrejön ebben az erőforráscsoportban.

    h. Bontsa ki az OS type (Operációs rendszer típusa) elemet.

    i. Adjon egy nevet a Cluster user name (Fürt felhasználóneve) mezőben.

    j. Adja meg a felhasználónévhez tartozó jelszót a Cluster password (Fürt jelszava) mezőben.

    k. Válassza a Befejezés gombot.

    HDInsight linked service settings

Megjegyzés

Az Azure HDInsightban korlátozott azon magok száma, amelyek az egyes támogatott Azure-régiókban felhasználhatók. Igény szerinti HDInsight társított szolgáltatás esetében a HDInsight-fürt ugyanazon a helyen jön létre, mint amit az Azure Storage elsődleges tárterületként használ. Ellenőrizze, hogy a magkvótája elegendő-e a fürt sikeres létrehozásához. További információk: Fürtök beállítása a HDInsightban Hadoop, Spark, Kafka stb. használatával.

Folyamat létrehozása

  1. Kattintson a + (plusz) gombra, majd a menüben válassza a Folyamat elemet.

    Buttons for creating a new pipeline

  2. A Tevékenységek eszközkészletben bontsa ki a HDInsight elemet. Húzza a Spark tevékenységet a Tevékenységek eszközkészletből a folyamat tervezőfelületére.

    Dragging the Spark activity

  3. A Spark-tevékenység tulajdonságok ablakában végezze el az alábbi lépéseket:

    a. Váltson a HDI-fürt lapra.

    b. Válassza ki az előző lépésben létrehozott AzureHDInsightLinkedService elemet.

    Specifying the HDInsight linked service

  4. Váltson a Szkript/Jar lapra, és végezze el az alábbi lépéseket:

    a. Feladathoz társított szolgáltatás esetén válassza az AzureBlobStorage1 lehetőséget.

    b. Kattintson a Tallózás a tárolóban lehetőségre.

    Specifying the Spark script on the &quot;Script/Jar&quot; tab

    c. Keresse meg az adftutorial/spark/script mappát, válassza ki a WordCount_Spark.py fájlt, majd kattintson a Befejezés gombra.

  5. A folyamat érvényesítéséhez kattintson az Érvényesítés gombra az eszköztáron. Az érvényesítési ablak bezárásához kattintson a >> (jobbra mutató nyíl) gombra.

    &quot;Validate&quot; button

  6. Kattintson Az összes közzététele gombra. A Data Factory felhasználói felülete entitásokat (társított szolgáltatásokat és folyamatot) tesz közzé az Azure Data Factory szolgáltatásban.

    &quot;Publish All&quot; button

Folyamat futtatásának aktiválása

Válassza az Eszköztár Eseményindító hozzáadása elemét, majd az Eseményindító most lehetőséget.

&quot;Trigger&quot; and &quot;Trigger Now&quot; buttons

A folyamat futásának monitorozása

  1. Váltson a Figyelés lapra. Ellenőrizze, hogy lát-e folyamatfuttatást. Egy Spark-fürt létrehozása nagyjából 20 percet vesz igénybe.

  2. Rendszeres időközönként kattintson a Frissítés gombra a folyamat futási állapotának ellenőrzéséhez.

    Tab for monitoring pipeline runs, with &quot;Refresh&quot; button

  3. A folyamat futásához kapcsolódó tevékenységfuttatások megtekintéséhez kattintson a Tevékenységfuttatások megtekintése elemre a Műveletek oszlopban.

    Pipeline run status

    A folyamatfuttatások nézetre a felül található Minden folyamatfuttatás hivatkozás kiválasztásával válthat vissza.

    &quot;Activity Runs&quot; view

Kimenet ellenőrzése

Ellenőrizze, hogy a kimeneti fájl a spark/outputfiles/wordcount mappában jött-e létre.

Location of the output file

A fájlban a bemeneti szövegfájl összes szavának szerepelnie kell, valamint annak is, hogy az adott szó hányszor szerepel a fájlban. Például:

(u'This', 1)
(u'a', 1)
(u'is', 1)
(u'test', 1)
(u'file', 1)

Következő lépések

A mintában szereplő folyamat egy Spark-tevékenységgel és egy igény szerinti HDInsight társított szolgáltatással alakítja át az adatokat. Megtanulta végrehajtani az alábbi műveleteket:

  • Adat-előállító létrehozása
  • Hozzon létre egy Spark-tevékenységet használó folyamatot.
  • Folyamat futtatásának aktiválása
  • A folyamat futásának monitorozása.

A következő oktatóanyagra lépve megtudhatja, hogyan alakíthat át adatokat egy Hive-szkript a virtuális hálózatban lévő Azure HDInsight-fürtön való futtatásával.