Öğretici: Databricks 'e Apache Spark uygulamasına yönelik bir .NET dağıtımı

Bu öğreticide, tek tıklamayla kurulum, kolaylaştırılmış iş akışları ve işbirliği sağlayan etkileşimli çalışma alanı ile Apache Spark tabanlı bir analiz platformu olan Azure Databricks aracılığıyla Uygulamanızı buluta nasıl dağıtabileceğiniz öğretilir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Azure Databricks çalışma alanı oluşturun.
  • Apache Spark için .NET uygulamanızı yayımlayın.
  • Spark işi ve Spark kümesi oluşturun.
  • Uygulamanızı Spark kümesinde çalıştırın.

Önkoşullar

Başlamadan önce, aşağıdaki görevleri yapın:

Azure Databricks çalışma alanı oluşturma

Not

Bu öğretici Azure Ücretsiz deneme aboneliği kullanılarak gerçekleştirilemez. Ücretsiz hesabınız varsa, profilinize gidin ve aboneliğinizi Kullandıkça Öde ile değiştirin. Daha fazla bilgi için bkz. Ücretsiz Azure hesabı. Ardından, harcama limitini kaldırınve bölgenizdeki vCPU 'lar için bir kota artışı isteyin . Azure Databricks çalışma alanınızı oluşturduğunuzda, çalışma alanının 14 gün boyunca Premium Azure Databricks dbus 'a erişmesini sağlamak için deneme (Premium-14 gün ücretsiz dbus) fiyatlandırma katmanını seçebilirsiniz.

Bu bölümde Azure portalını kullanarak bir Azure Databricks çalışma alanı oluşturursunuz.

  1. Azure Portal, kaynak > Analizi oluştur > Azure Databricks' u seçin.

    Azure portal Azure Databricks kaynak oluşturma

  2. Azure Databricks Hizmeti bölümünde, Databricks çalışma alanı oluşturmak için değerler sağlayın.

    Özellik Açıklama
    Çalışma alanı adı Databricks çalışma alanınız için bir ad sağlayın.
    Abonelik Açılan listeden Azure aboneliğinizi seçin.
    Kaynak grubu Yeni bir kaynak grubu oluşturmayı veya mevcut bir kaynak grubunu kullanmayı seçin. Kaynak grubu, bir Azure çözümüne ilişkin kaynakları tutan bir kapsayıcıdır. Daha fazla bilgi için bkz. Azure Kaynak Grubuna genel bakış.
    Konum Tercih ettiğiniz bölgeyi seçin. Kullanılabilir bölgeler hakkında daha fazla bilgi için bkz. bölgeye göre kullanılabilir Azure hizmetleri.
    Fiyatlandırma Katmanı standart, Premium veya deneme arasında seçim yapın. Bu katmanlar hakkında daha fazla bilgi için bkz. Databricks fiyatlandırma sayfası.
    Sanal Ağ No
  3. Oluştur’u seçin. Çalışma alanının oluşturulması birkaç dakika sürer. Çalışma alanı oluşturma sırasında, Bildirimler' de dağıtım durumunu görüntüleyebilirsiniz.

Azure Databricks araçları 'nı yükler

Databricks CLI kullanarak Azure Databricks kümelerine bağlanabilir ve dosyaları yerel makinenizden bunlara yükleyebilirsiniz. Databricks kümeleri, DBFS (Databricks dosya sistemi) üzerinden dosyalara erişim.

  1. Databricks CLı, Python 3,6 veya üstünü gerektirir. Zaten Python yüklüyse, bu adımı atlayabilirsiniz.

    Windows için:

    Windows için Python indirin

    Linux için: Python, çoğu Linux dağıtımlarına önceden yüklenmiş olarak gelir. Hangi sürümü yüklecağınızı görmek için aşağıdaki komutu çalıştırın:

    python3 --version
    
  2. Databricks CLı 'yı yüklemek için PIP kullanın. Python 3,4 ve üzeri, varsayılan olarak PIP 'yi içerir. Python 3 için pip3 kullanın. Şu komutu çalıştırın:

    pip3 install databricks-cli
    
  3. Databricks CLı 'yı yükledikten sonra, yeni bir komut istemi açın ve komutunu çalıştırın databricks . ' Databricks ' bir iç veya dış komut hatası olarak tanınmazsa, yeni bir komut istemi açtığınızdan emin olun.

Azure Databricks ayarlama

Databricks CLı yükleolduğunuza göre, kimlik doğrulama ayrıntılarını ayarlamanız gerekir.

  1. Databricks CLı komutunu çalıştırın databricks configure --token .

  2. Configure komutunu çalıştırdıktan sonra, bir ana bilgisayar girmeniz istenir. Ana bilgisayar URL 'niz şu biçimi kullanır: https://<Location>.azuredatabricks.net . Örneğin, Azure Databricks hizmeti oluşturma sırasında eastus2 ' ı seçtiyseniz, konak olur https://eastus2.azuredatabricks.net .

  3. Ana bilgisayarınızı girdikten sonra bir belirteç girmeniz istenir. Azure portal, Azure Databricks çalışma alanınızı başlatmak için çalışma alanını Başlat ' ı seçin.

    Azure Databricks çalışma alanını Başlat

  4. çalışma alanınızın giriş sayfasında kullanıcı Ayarlar' yi seçin.

    Azure Databricks çalışma alanındaki Kullanıcı ayarları

  5. kullanıcı Ayarlar sayfasında yeni bir belirteç oluşturabilirsiniz. Oluşturulan belirteci kopyalayın ve komut isteminize geri yapıştırın.

    Azure Databricks çalışma alanında yeni erişim belirteci oluştur

Artık oluşturduğunuz Azure Databricks kümelerine erişebiliyor ve dosyaları DBFS 'ye yükleyeceksiniz.

Çalışan bağımlılıklarını indir

Not

Azure ve AWS Databricks, Linux tabanlıdır. Bu nedenle, uygulamanızı Databricks 'e dağıtmaya ilgileniyorsanız, uygulamanızın .NET Standard uyumlu olduğundan ve uygulamanızı derlemek için .NET Core derleyicisi kullandığınızdan emin olun.

  1. Microsoft. spark. Worker, yazdığınız kullanıcı tanımlı işlevler (UDF 'ler) gibi uygulamanızı Apache Spark yürütmenize yardımcı olur. Microsoft. spark. Workeröğesini indirin.

  2. İnstall-Worker.sh , Apache Spark bağımlı dosyaları için .net ' i kümenizin düğümlerine kopyalamanızı sağlayan bir betiktir.

    Yerel bilgisayarınızda install-Worker.sh adlı yeni bir dosya oluşturun ve GitHub bulunan install-Worker.sh içeriğini yapıştırın.

  3. DB-init.sh , Databricks Spark kümenize bağımlılıklar yükleyen bir betiktir.

    Yerel bilgisayarınızda DB-init.sh adlı yeni bir dosya oluşturun ve GitHub bulunan DB-init.sh içeriğini yapıştırın.

    Yeni oluşturduğunuz dosyada, DOTNET_SPARK_RELEASE değişkenini olarak ayarlayın https://github.com/dotnet/spark/releases/download/v1.0.0/Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz . DB-init.sh dosyasının kalan kısmını olduğu gibi bırakın.

Not

Windows kullanıyorsanız, install-worker.sh ve db-init.sh betiklerinizde bulunan satır bitişlerinin unıx stili (LF) olduğunu doğrulayın. satır sonlarını, Not Defteri + + ve Atom gibi metin düzenleyicilerle değiştirebilirsiniz.

Uygulamanızı yayımlama

daha sonra, Spark kümenizin uygulamanızı çalıştırmak için gereken tüm dosyalara erişebildiğinden emin olmak için Başlarken Apache Spark .net 'te oluşturulan mySparkApp 'i 10 dakikalık öğreticide yayımlarsınız.

  1. MySparkApp yayımlamak için aşağıdaki komutları çalıştırın:

    cd mySparkApp
    dotnet publish -c Release -f netcoreapp3.1 -r ubuntu.16.04-x64
    
  2. Dosyaları Databricks Spark kümenize kolayca yükleyebilmeniz için, yayımlanan uygulama dosyalarınızı Zip halinde aşağıdaki görevleri yapın.

    Windows:

    MySparkApp/bin/Release/netcoreapp 3.1/Ubuntu. 16.04-x64 dizinine gidin. Ardından, Yayımla klasörüne sağ tıklayıp > sıkıştırılmış (daraltılmış) klasöre gönder' i seçin. Yeni klasörü publish.zip olarak adlandırın.

    Linux 'ta aşağıdaki komutu çalıştırın:

    zip -r publish.zip .
    
  3. Uygulamanızda Kullanıcı tanımlı işlevleriniz varsa, bağımlılıklarıyla birlikte Kullanıcı tanımlı işlevler içeren dll 'Ler gibi uygulama derlemelerinin her bir Microsoft. spark. Worker çalışma dizinine yerleştirilmesi gerekir.

    uygulama derlemelerinizi databricks kümenize Upload:

    cd <path-to-your-app-publish-directory>
    databricks fs cp <assembly>.dll dbfs:/apps/dependencies
    

    DB-init.sh ' deki uygulama bağımlılıkları bölümünü açıklama olarak değiştirin ve uygulama bağımlılıkları yolunu işaret edin. Ardından, güncelleştirilmiş db-init.sh kümenize yükleyin:

    cd <path-to-db-init-and-install-worker>
    databricks fs cp db-init.sh dbfs:/spark-dotnet/db-init.sh
    

Dosyaları karşıya yükleme

Bu bölümde, kümenizin, uygulamalarınızı bulutta çalıştırmak için gereken her şeye sahip olması için DBFS'ye birkaç dosya yükleyebilirsiniz. DBFS'ye her dosya yüklerken, bu dosyanın bilgisayarınızda bulunduğu dizinde yer asanız emin olun.

  1. , install-worker.sh ve Microsoft.Spark.Worker db-init.sh DBFS'ye yüklemek için aşağıdaki komutları çalıştırın:

    databricks fs cp db-init.sh dbfs:/spark-dotnet/db-init.sh
    databricks fs cp install-worker.sh dbfs:/spark-dotnet/install-worker.sh
    databricks fs cp Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz dbfs:/spark-dotnet/Microsoft.Spark.Worker.netcoreapp3.1.linux-x64-1.0.0.tar.gz
    
  2. Kümenizin uygulamayı çalıştırması gereken kalan dosyaları karşıya yüklemek için aşağıdaki komutları çalıştırın: sıkıştırılmış yayımlama klasörü, input.txt ve microsoft-spark-2-4_2.11-1.0.0.jar.

    cd mySparkApp
    databricks fs cp input.txt dbfs:/input.txt
    
    cd mySparkApp\bin\Release\netcoreapp3.1\ubuntu.16.04-x64 directory
    databricks fs cp publish.zip dbfs:/spark-dotnet/publish.zip
    databricks fs cp microsoft-spark-2-4_2.11-1.0.0.jar dbfs:/spark-dotnet/microsoft-spark-2-4_2.11-1.0.0.jar
    

Bir iş oluşturma

Uygulamanız, Azure Databricks için .NET'i çalıştırmak için kullanabileceğiniz spark-submit komutunun çalıştır olduğu bir iş Apache Spark çalışır.

  1. Çalışma Alanınız Azure Databricks İşler simgesini ve ardından + İş Oluştur'a tıklayın.

    İş Azure Databricks oluşturma

  2. İş için bir başlık seçin ve ardından Spark-submit'i yapılandır'ı seçin.

    Databricks işi için spark-submit'i yapılandırma

  3. aşağıdaki parametreleri iş yapılandırmasına yapıştırın. Ardından Onayla'ya seçin.

    ["--class","org.apache.spark.deploy.dotnet.DotnetRunner","/dbfs/spark-dotnet/microsoft-spark-2-4_2.11-1.0.0.jar","/dbfs/spark-dotnet/publish.zip","mySparkApp"]
    

Küme oluşturma

  1. İş kümenizi yapılandırmak için işinize gidin ve Düzenle'yi seçin.

  2. Kümenizi Spark 2.4.1 olarak ayarlayın. Ardından Gelişmiş Seçenekler > Init Betikleri'ne tıklayın. Init Betik Yolu olarak dbfs:/spark-dotnet/db-init.sh ayarlayın.

    Spark kümelerini Azure Databricks

  3. Küme ayarlarınızı onaylamak için Onayla'ya tıklayın.

Uygulamanızı çalıştırma

  1. yeni yapılandırılan Spark kümeniz üzerinde işlerinizi çalıştırmak için işinize gidin ve Şimdi Çalıştır'ı seçin.

  2. İş kümesi oluşturması birkaç dakika sürer. Oluşturulduktan sonra, işiniz göndererek çıktıyı görüntüabilirsiniz.

  3. Sol menüden Kümeler'i ve ardından işnizin adını ve çalıştırmayı seçin.

  4. İş çıkışınızı görüntülemek için Sürücü Günlükleri'ne tıklayın. Uygulamanın yürütülmesi tamam olduğunda, başlarken yerel çalıştırmadaki aynı sözcük sayısı tablosu standart çıkış konsoluna yazılır.

    Azure Databricks çıktı tablosu

    Tebrikler, uygulamanıza ilk .NET Apache Spark Azure Databricks!

Kaynakları temizleme

Databricks çalışma alanına artık ihtiyacınız yoksa, Azure Databricks kaynağınızı Azure portal. Kaynak grubu adını seçerek de kaynak grubu sayfasını açabilir ve sonra Kaynak grubunu sil’i seçebilirsiniz.

Sonraki adımlar

Bu öğreticide, databricks'e Apache Spark için .NET'inizi dağıttınız. Databricks hakkında daha fazla bilgi edinmek için Azure Databricks devam edin.