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

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

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:

We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

  • Egy 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 az alábbi 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 a <storageAccountName> kifejezést az Azure Storage-fiókja 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

Kövesse az alábbi rövid útmutató lépéseit: Adat-előállító létrehozása az Azure Portallal adat-előállító létrehozásához, ha még nem rendelkezik ilyennel.

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.
  • Egy igény szerinti HDInsight társított szolgáltatást. 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 "Azure Blob Storage" 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 "Azure HDInsight" 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ó: Microsoft Entra-alkalmazás és szolgáltatásnév 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.

    g. 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éslehetőséget.

    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 "Script/Jar" 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.

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

    "Publish All" 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.

"Trigger" and "Trigger Now" 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 "Refresh" 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 tetején található Minden folyamatfuttatás hivatkozás kiválasztásával válthat vissza.

    "Activity Runs" 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)

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.