Azure Data Factory'da Spark etkinliği kullanarak verileri bulutta dönüştürme

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu öğreticide, Azure Data Factory işlem hattı oluşturmak için Azure portalını kullanacaksınız. Bu işlem hattı, bir Spark etkinliğini ve talep üzerine bir Azure HDInsight bağlı hizmetini kullanarak verileri dönüştürür.

Bu öğreticide aşağıdaki adımları gerçekleştireceksiniz:

  • Veri fabrikası oluşturma.
  • Spark etkinliği kullanan bir işlem hattı oluşturun.
  • İşlem hattını çalıştırmayı tetikleyin.
  • İşlem hattı çalışmasını izleyin.

Azure aboneliğiniz yoksa başlamadan önce free hesabı oluşturun.

Önkoşullar

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell yükleme. Az PowerShell modülüne nasıl geçiş yapılacağını öğrenmek için bkz. AzureRM'den Az Azure PowerShell dağıtma.

  • Azure depolama hesabı. Bir Python betiği ve bir giriş dosyası oluşturur ve bunları Azure Depolama'a yüklersiniz. Spark programının çıktısı bu depolama hesabında depolanır. İsteğe bağlı Spark kümesi, birincil depolama alanıyla aynı depolama hesabını kullanır.

Not

HdInsight standart katmanda yalnızca genel amaçlı depolama hesaplarını destekler. Hesabın premium veya yalnızca blob depolama hesabı olmadığından emin olun.

  • Azure PowerShell. Azure PowerShell yükleme ve yapılandırma başlığındaki yönergeleri izleyin.

Python betiğini Blob depolama hesabınıza yükleme

  1. aşağıdaki içeriğe sahip WordCount_Spark.py adlı bir Python dosyası oluşturun:

    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. <storageAccountName> değerini Azure depolama hesabınızın adıyla değiştirin. Ardından dosyayı kaydedin.

  3. Azure Blob depolama alanında adftutorial adlı bir kapsayıcı mevcut değilse oluşturun.

  4. Spark adlı bir klasör oluşturun.

  5. Spark klasörünün altında script adlı bir alt klasör oluşturun.

  6. WordCount_Spark.py dosyasını script alt klasörüne yükleyin.

Girdi dosyasını yükleme

  1. Bazı metinlerle minecraftstory.txt adlı bir dosya oluşturun. Spark programı bu metindeki sözcükleri sayar.
  2. Spark klasörünün altında inputfiles adlı bir alt klasör oluşturun.
  3. minecraftstory.txt dosyasını inputfiles alt klasörüne yükleyin.

Veri fabrikası oluşturma

Quickstart: Azure portalını kullanarak veri fabrikası oluşturma makalesindeki adımları izleyerek, eğer çalışabileceğiniz bir veri fabrikanız yoksa, bir veri fabrikası oluşturun.

Bağlı hizmetler oluşturma

Bu bölümde iki bağlı hizmet oluşturacaksınız:

  • Azure depolama hesabını veri fabrikasına bağlamak için kullanılan bir Azure Depolama bağlı hizmetidir. Bu depolama alanı, isteğe bağlı HDInsight kümesi tarafından kullanılır. Ayrıca, çalıştırılacak Spark betiğini içerir.
  • İstek üzerine HDInsight bağlantılı hizmet. Azure Data Factory otomatik olarak bir HDInsight kümesi oluşturur ve Spark programını çalıştırır. Daha sonra, küme önceden yapılandırılmış bir süre boyunca boşta kaldığında HDInsight kümesini siler.

Azure Depolama bağlı hizmet oluşturma

  1. Giriş sayfasında, sol paneldeki Yönet sekmesine geçin.

    Yönet sekmesini gösteren ekran görüntüsü.

  2. Pencerenin alt kısmındaki Bağlantılar’ı ve sonra + Yeni’yi seçin.

    Yeni bağlantı oluşturmaya yönelik düğmeler

  3. Yeni Bağlı Hizmet penceresinde Data Store>Azure Blob Depolama'ı seçin ve ardından Continue öğesini seçin.

    Azure Blob Depolama kutucuğunu seçme

  4. Depolama hesabı adı için listeden ad seçip Kaydet öğesini seçin.

    Depolama hesabı adı belirtme kutusu

İsteğe bağlı bir HDInsight bağlı hizmeti oluşturma

  1. Başka bir bağlı hizmet oluşturmak için + Yeni düğmesini tekrar seçin.

  2. Yeni Bağlı Hizmet penceresinde Compute>Azure HDInsight'ı seçin ve ardından Continue öğesini seçin.

    “Azure HDInsight” kutucuğunu seçme

  3. Yeni Bağlı Hizmet penceresinde aşağıdaki adımları tamamlayın:

    a. AdınaAzureHDInsightLinkedService girin.

    b. Tür içinİsteğe Bağlı HDInsight’ın seçili olduğunu onaylayın.

    c. Azure Depolama Bağlı Hizmet için AzureBlobStorage1 öğesini seçin. Bu bağlı hizmeti daha önce oluşturmuştunuz. Farklı bir ad kullandıysanız, doğru adı burada belirtin.

    d. Küme türü için spark’ı seçin.

    e. Hizmet sorumlusu kimliği için, HDInsight kümesi oluşturma iznine sahip hizmet sorumlusunun kimliğini girin.

    Bu hizmet sorumlusu, abonelikte ya da kümenin oluşturulduğu kaynak grubunda Katkıda Bulunan rolünün bir üyesi olmalıdır. Daha fazla bilgi için bkz. Microsoft Entra uygulaması ve hizmet sorumlusu oluşturma. Hizmet sorumlusu kimliği Uygulama Kimliği ile eşdeğerdir ve Hizmet sorumlusu anahtarı bir İstemci gizli dizisinin değerine eşdeğerdir.

    f. Hizmet sorumlusu anahtarı için anahtarı girin.

    g. Kaynak grubu için veri fabrikası oluştururken kullandığınız kaynak grubunun aynısını seçin. Spark kümesi bu kaynak grubunda oluşturulur.

    h. İşletim sistemi türü seçeneğini genişletin.

    i. Küme kullanıcısı adı için bir ad girin.

    j. Kullanıcı için Küme parolası girin.

    k. Bitir'i seçin.

    HDInsight bağlı hizmet ayarları

Not

Azure HDInsight, desteklediği her Azure bölgede kullanabileceğiniz toplam çekirdek sayısını sınırlar. İsteğe bağlı HDInsight bağlı hizmeti için HDInsight kümesi, birincil depolama alanı olarak kullanılan aynı Azure Depolama konumda oluşturulur. Kümenin başarıyla oluşturulabilmesi için yeterince çekirdek kotanızın olduğundan emin olun. Daha fazla bilgi için bkz. HDInsight’ta Hadoop, Spark, Kafka ve daha fazlası ile küme ayarlama.

Bir işlem hattı oluştur

  1. + (artı) düğmesini seçin, ardından menüden İşlem Hattı'nı seçin.

    Yeni işlem hattı oluşturma düğmeleri

  2. Etkinlikler araç kutusunda HDInsight’ı genişletin. Etkinlikler araç kutusundan Spark etkinliğini işlem hattı tasarımcısının yüzeyine sürükleyin.

    Spark etkinliğini sürükleme

  3. Alt kısımdaki Spark etkinlik penceresinin özellikler bölümünde aşağıdaki adımları tamamlayın:

    a. HDI Kümesi sekmesine geçin.

    b. Önceki yordamda oluşturduğunuz AzureHDInsightLinkedService hizmetini seçin.

    HDInsight bağlı hizmetini belirtme

  4. Betik/Jar sekmesine geçin ve aşağıdaki adımları tamamlayın:

    a. İş Bağlı Hizmeti için AzureBlobStorage1'i seçin.

    b. Depolamaya Gözat’ı seçin.

    Spark betiğini

    c. adftutorial/spark/script klasörüne göz atın, WordCount_Spark.py dosyasını seçin ve Son’a tıklayın.

  5. İşlem hattını doğrulamak için araç çubuğundaki Doğrula düğmesini seçin. Doğrulama penceresini kapatmak için >> (sağ ok) düğmesini seçin.

  6. Tümünü Yayımla seçin. Data Factory kullanıcı arabirimi varlıkları (bağlı hizmetler ve işlem hattı) Azure Data Factory hizmetinde yayımlar.

İşlem hattını çalıştır

Araç çubuğunda Tetikleyici Ekle'yi ve ardından Şimdi Tetikle'yi seçin.

İşlem hattını izleme

  1. Monitör sekmesine geçin. Bir işlem hattı çalıştırması gördüğünüzden emin olun. Spark kümesi oluşturma işlemi yaklaşık 20 dakika sürer.

  2. Belirli aralıklarla Yenile’yi seçerek işlem hattı yürütme durumunu kontrol edin.

    İşlem hattı çalıştırmalarını izleme sekmesi,

  3. İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görmek için Eylemler sütunundaki Etkinlik Çalıştırmalarını Göster’i seçin.

    Pipeline çalışma durumu

    Üst kısımdaki Tüm İşlem Hattı Çalıştırmaları bağlantısını seçerek işlem hattı çalıştırmaları görünümüne geri dönebilirsiniz.

Çıktıyı doğrulama

adftutorial kapsayıcısının spark/otuputfiles/wordcount klasöründe çıktı dosyasının oluşturulduğunu doğrulayın.

Çıkış dosyasının konumu

Dosya, girdi metin dosyasındaki her bir sözcüğü ve sözcüğün dosyada görünme sayısını içermelidir. Örneğin:

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

Bu örnekteki işlem hattı, Spark etkinliğini ve isteğe bağlı bir HDInsight bağlı hizmetini kullanarak verileri dönüştürür. Şunları öğrendiniz:

  • Veri fabrikası oluşturma.
  • Spark etkinliği kullanan bir işlem hattı oluşturun.
  • İşlem hattını çalıştırmayı tetikleyin.
  • İşlem hattı çalışmasını izleyin.

Sanal ağdaki bir Azure HDInsight kümesinde Hive betiği çalıştırarak verileri dönüştürmeyi öğrenmek için sonraki öğreticiye geçin:

Tutorial: Azure Sanal Ağ içinde Hive kullanarak verileri dönüştürün.