Transformace dat v cloudu pomocí aktivity Sparku ve službě Azure Data Factory

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

V tomto kurzu vytvoříte pomocí webu Azure Portal kanál služby Azure Data Factory. Tento kanál transformuje data pomocí aktivity Sparku a propojené služby Azure HDInsight na vyžádáni.

V tomto kurzu provedete následující kroky:

  • Vytvoření datové továrny
  • Vytvoření kanálu využívajícího aktivitu Sparku
  • Aktivace spuštění kanálu
  • Monitorování spuštění kanálu

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Požadavky

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

  • Účet služby Azure Storage. Vytvoříte skript Pythonu a vstupní soubor a nahrajete je do Azure Storage. V tomto účtu úložiště se ukládá výstup z programu Sparku. Cluster Spark na vyžádání používá stejný účet úložiště jako primární úložiště.

Poznámka:

HdInsight podporuje jenom účty úložiště pro obecné účely s úrovní Standard. Ujistěte se, že účet úložiště nemá úroveň Premium nebo není určený jenom pro objekty blob.

Nahrání skriptu Pythonu do účtu služby Blob Storage

  1. Vytvořte soubor Pythonu s názvem WordCount_Spark.py s následujícím obsahem:

    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. Položku <storageAccountName> nahraďte názvem svého účtu služby Azure Storage. Pak soubor uložte.

  3. Ve službě Azure Blob Storage vytvořte kontejner adftutorial, pokud ještě neexistuje.

  4. Vytvořte složku s názvem spark.

  5. Ve složce spark vytvořte dílčí složku s názvem script.

  6. Do podsložky script uložte soubor WordCount_Spark.py.

Nahrání vstupního souboru

  1. Vytvořte soubor minecraftstory.txt a nějakým textem. Program Sparku spočítá slova v tomto textu.
  2. Ve složce spark vytvořte dílčí složku s názvem inputfiles.
  3. Nahrajte do dílčí složky inputfiles soubor minecraftstory.txt.

Vytvoření datové továrny

Postupujte podle kroků v rychlém startu v článku : Vytvoření datové továrny pomocí webu Azure Portal k vytvoření datové továrny, pokud ji ještě nemáte pro práci.

Vytvoření propojených služeb

V této části vytvoříte tyto dvě propojené služby:

  • Propojená služba Azure Storage, která propojí účet služby Azure Storage s datovou továrnou. Toto úložiště používá cluster HDInsight na vyžádání. Obsahuje také skript Sparku, který se má spustit.
  • Propojená služba HDInsight na vyžádání. Azure Data Factory automaticky vytvoří cluster HDInsight a spustí program Sparku. Až bude cluster HDInsight zadanou dobu nečinný, odstraní ho.

Vytvoření propojené služby Azure Storage

  1. Na domovské stránce přepněte na kartu Spravovat na levém panelu.

    Snímek obrazovky znázorňující kartu Spravovat

  2. Ve spodní části okna vyberte možnost Připojení a potom možnost + Nové.

    Tlačítka pro vytvoření nového připojení

  3. V okně Nová propojená služba vyberte Data Store>Azure Blob Storage a potom vyberte Pokračovat.

    Výběr

  4. V seznamu v poli Název účtu úložiště vyberte název a potom vyberte Uložit.

    Pole pro zadání názvu účtu úložiště

Vytvoření propojené služby HDInsight na vyžádání

  1. Znovu vyberte tlačítko + Nová a vytvořte další propojenou službu.

  2. V okně Nová propojená služba vyberte Compute>Azure HDInsight a potom vyberte Pokračovat.

    Výběr

  3. V okně Nová propojená služba proveďte následující kroky:

    a. Do pole Název zadejte AzureHDInsightLinkedService.

    b. Ověřte, že je v poli Typ vybraná možnost HDInsight na vyžádání.

    c. Pro propojenou službu Azure Storage vyberte AzureBlobStorage1. Tuto propojenou službu jste vytvořili dříve. Pokud jste použili jiný název, zadejte sem správný název.

    d. V poli Typ clusteru vyberte spark.

    e. V poli ID instančního objektu zadejte ID instančního objektu s oprávněním k vytvoření clusteru HDInsight.

    Tento instanční objekt musí být členem role přispěvatele předplatného nebo skupiny prostředků, ve které se cluster vytvoří. Další informace naleznete v tématu Vytvoření aplikace Microsoft Entra a instančního objektu. ID instančního objektu je ekvivalentní ID aplikace a klíč instančního objektu je ekvivalentní hodnotě tajného klíče klienta.

    f. Do pole Klíč instančního objektu zadejte klíč.

    g. V poli Skupina prostředků vyberte stejnou skupinu prostředků, kterou jste použili při vytváření datové továrny. Cluster Spark se vytvoří v této skupině prostředků.

    h. Rozbalte Typ operačního systému.

    i. Zadejte Jméno uživatele clusteru.

    j. Zadejte Heslo clusteru pro tohoto uživatele.

    k. Vyberte Dokončit.

    Nastavení propojené služby HDInsight

Poznámka:

Azure HDInsight omezuje celkový počet jader, která můžete v jednotlivých podporovaných oblastech Azure použít. V případě propojené služby HDInsight na vyžádání se cluster HDInsight vytvoří ve stejném umístění jako služba Azure Storage, kterou používá jako primární úložiště. Ujistěte se, že máte dostatečné kvóty pro jádra, aby bylo možné cluster úspěšně vytvořit. Další informace najdete v tématu Nastavení clusterů v HDInsight se systémem Hadoop, Spark, Kafka a dalšími.

Vytvořit kanál

  1. Vyberte tlačítko + (plus) a potom v nabídce vyberte Kanál.

    Tlačítka pro vytvoření nového kanálu

  2. Na panelu nástrojů Aktivity rozbalte HDInsight. Přetáhněte aktivitu Spark z panelu nástrojů Aktivity na plochu návrháře kanálu.

    Přetažení aktivity Spark

  3. Ve vlastnostech v dolní části okna aktivity Spark proveďte následující kroky:

    a. Přepněte na kartu Cluster HDInsight.

    b. Vyberte službu AzureHDInsightLinkedService, kterou jste vytvořili v předchozím kroku.

    Zadání propojené služby HDInsight

  4. Přepněte na kartu Skripty/Jar a proveďte následující kroky:

    a. Jako propojenou službu úlohy vyberte AzureBlobStorage1.

    b. Klikněte na Procházet úložiště.

    Zadání skriptu Sparku v

    c. Přejděte do složky adftutorial/spark/script, vyberte soubor WordCount_Spark.py a potom vyberte Dokončit.

  5. Pokud chcete kanál ověřit, vyberte tlačítko Ověřit na panelu nástrojů. Výběrem tlačítka >> (šipka doprava) zavřete okno ověřování.

  6. Vyberte Publikovat vše. Uživatelské rozhraní služby Data Factory publikuje entity (propojené služby a kanál) do služby Azure Data Factory.

Aktivace spuštění kanálu

Na panelu nástrojů vyberte Přidat aktivační událost a pak vyberte Aktivovat.

Monitorování spuštění kanálu

  1. Přepněte na kartu Monitorování . Potvrďte, že se zobrazuje spuštění kanálu. Vytvoření clusteru Spark trvá přibližně 20 minut.

  2. Pravidelně klikejte na Aktualizovat a kontrolujte stav spuštění kanálu.

    Tab pro monitorování spuštění kanálu s

  3. Pokud chcete zobrazit spuštění aktivit související se spuštěním kanálu, vyberte možnost Zobrazit spuštění aktivit ve sloupci Akce.

    Stav spuštění kanálu

    Výběrem odkazu Všechna spuštění kanálu v horní části můžete přepnout zpět do zobrazení spuštění kanálu.

Ověření výstupu

Ověřte, že se ve složce spark/otuputfiles/wordcount kontejneru adftutorial vytvořil výstupní soubor.

Umístění výstupního souboru

Tento soubor by měl obsahovat všechna slova ze vstupního textového souboru a počet výskytů těchto slov v souboru. Příklad:

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

Kanál v této ukázce transformuje data pomocí aktivity Sparku a propojené služby HDInsight na vyžádáni. Naučili jste se:

  • Vytvoření datové továrny
  • Vytvoření kanálu využívajícího aktivitu Sparku
  • Aktivace spuštění kanálu
  • Monitorování spuštění kanálu

Pokud chcete zjistit, jak transformovat data spuštěním skriptu Hivu v clusteru Azure HDInsight ve virtuální síti, přejděte k následujícímu kurzu: