Aracılığıyla paylaş


Azure Synapse Analytics'de Apache Spark için kitaplıkları yönetme

Kitaplıklar, Azure Synapse Analytics'te Apache Spark (Azure Synapse Spark) için programlarınıza veya projelerinize eklemek isteyebileceğiniz yeniden kullanılabilir kod sağlar.

Sunucusuz Apache Spark havuz ortamınızı çeşitli nedenlerle güncelleştirmeniz gerekebilir. Örneğin, şunları bulabilirsiniz:

  • Temel bağımlılıklarınızdan biri yeni bir sürüm yayımladı.
  • Makine öğrenmesi modelinizi eğitmak veya verilerinizi hazırlamak için ek bir pakete ihtiyacınız vardır.
  • Daha iyi bir paket mevcuttur ve artık eski pakete ihtiyacınız yoktur.
  • Ekibiniz Apache Spark havuzunuzda kullanılabilir olması gereken özel bir paket oluşturms.

Üçüncü taraf veya yerel olarak oluşturulmuş kodu uygulamalarınız için kullanılabilir hale getirmek için sunucusuz Apache Spark havuzlarınızdan birine veya bir not defteri oturumuna bir kitaplık yükleyin.

Paket düzeylerine genel bakış

Azure Synapse Analytics'te yüklü üç paket düzeyi vardır:

  • Varsayılan: Varsayılan paketler tam bir Anaconda yüklemesini ve ek olarak yaygın olarak kullanılan kitaplıkları içerir. Kitaplıkların tam listesi için bkz . Apache Spark sürüm desteği.

    Spark örneği başlatıldığında, bu kitaplıklar otomatik olarak eklenir. Diğer düzeylere daha fazla paket ekleyebilirsiniz.

  • Spark havuzu: Çalışan tüm yapıtlar Spark havuzu düzeyinde paketleri kullanabilir. Örneğin, not defteri ve Spark iş tanımlarını ilgili Spark havuzlarına ekleyebilirsiniz.

    Azure Synapse Analytics çalışma alanınızda kullanmak istediğiniz özel kitaplıkları ve açık kaynak kitaplığın belirli bir sürümünü karşıya yükleyebilirsiniz. Çalışma alanı paketleri Spark havuzlarınıza yüklenebilir.

  • Oturum: Oturum düzeyinde yükleme, belirli bir not defteri oturumu için bir ortam oluşturur. Oturum düzeyi kitaplıkların değişikliği oturumlar arasında kalıcı olmaz.

Not

  • Havuz düzeyinde kitaplık yönetimi, paketlerin boyutuna ve gerekli bağımlılıkların karmaşıklığına bağlı olarak, maksimum güncelleştirme süresi 50 dakika olarak ayarlanır. Havuz düzeyinde kitaplık yönetimi işiniz, üst sınır olan 50 dakikayı aşarsa otomatik olarak iptal edilir. Deneysel ve hızlı yinelemeli senaryolar için oturum düzeyinde yükleme yapmanızı öneririz.
  • Havuz düzeyinde kitaplık yönetimi, Not Defterlerinizi ve Spark iş tanımlarınızı çalıştırmak için kararlı bir bağımlılık oluşturur. İşlem hattı çalıştırmaları için kitaplığı Spark havuzunuza yüklemeniz kesinlikle önerilir.
  • Oturum düzeyinde kitaplık yönetimi, hızlı yineleme veya kitaplığın sık sık yapılan değişiklikleriyle ilgilenme konusunda size yardımcı olabilir. Ancak, oturum düzeyinde yüklemenin kararlılığı söz konusu değildir. Ayrıca işlem hattı çalıştırmasında %pip ve %conda gibi satır içi komutlar devre dışı bırakıldı. Geliştirme aşamasında Not Defteri oturumunda kitaplığın yönetilmesi önerilir.

Çalışma alanı paketlerini yönetme

Ekibiniz özel uygulamalar veya modeller geliştirdiğinde kodunuzu paketlemek için .whl, .jar veya .tar.gz dosyaları gibi çeşitli kod yapıtları geliştirebilirsiniz.

Önemli

  • tar.gz yalnızca R dili için desteklenir. Lütfen Python özel paketi olarak .whl kullanın.

Azure Synapse'te çalışma alanı paketleri özel veya özel .whl ya da .jar dosyaları olabilir. Bu paketleri çalışma alanınıza yükleyebilir ve daha sonra belirli bir sunucusuz Apache Spark havuzuna atayabilirsiniz. Bu çalışma alanı paketlerini atadıktan sonra, bunlar tüm Spark havuzu oturumlarına otomatik olarak yüklenir.

Çalışma alanı kitaplıklarını yönetme hakkında daha fazla bilgi edinmek için bkz . Çalışma alanı paketlerini yönetme.

Havuz paketlerini yönetme

Bazı durumlarda Apache Spark havuzunda kullanılan paketleri standart hale getirmek isteyebilirsiniz. Bu standartlaştırma, ekibinizdeki birden çok kişi aynı paketleri yaygın olarak yüklerse yararlı olabilir.

Azure Synapse Analytics'in havuz yönetimi özelliklerini kullanarak, sunucusuz bir Apache Spark havuzuna yüklenecek varsayılan kitaplık kümesini yapılandırabilirsiniz. Bu kitaplıklar temel çalışma zamanının üzerine yüklenir.

Python kitaplıkları için Azure Synapse Spark havuzları, Python paketi bağımlılıklarını yüklemek ve yönetmek için Conda kullanır. Bir requirements.txt veya environment.yml dosyası sağlayarak havuz düzeyinde Python kitaplıklarını belirtebilirsiniz. Bu ortam yapılandırma dosyası, bu Spark havuzundan her Spark örneği oluşturulduğunda kullanılır. Çalışma alanı paketlerini havuzlarınıza da ekleyebilirsiniz.

Bu özellikler hakkında daha fazla bilgi edinmek için bkz . Spark havuzu paketlerini yönetme.

Önemli

  • Yüklediğiniz paket büyükse veya yüklenmesi uzun sürüyorsa Spark örneğinin başlangıç süresini etkileyebilir.
  • PySpark, Python, Scala/Java, .NET veya Spark sürümünün değiştirilmesi desteklenmez.

DEP özellikli Azure Synapse Spark havuzları için bağımlılıkları yönetme

Not

Paketlerin genel bir depodan yüklenmesi, DEP özellikli çalışma alanlarında desteklenmez. Bunun yerine, tüm bağımlılıklarınızı çalışma alanı kitaplıkları olarak yükleyin ve Spark havuzunuza yükleyin.

Gerekli bağımlılıkları belirleme konusunda sorun yaşıyorsanız şu adımları izleyin:

  1. Azure Synapse Spark ortamıyla aynı yerel bir Python ortamı ayarlamak için aşağıdaki betiği çalıştırın. Bu betik, Azure Synapse Spark için varsayılan Python ortamında yer alan tüm kitaplıkların listesini içeren bir YAML dosyası gerektirir. Bu YAML dosyasını Apache Spark 3.2 (Destek Sonu duyuruldu) ve Apache Spark 3.3 (GA) gibi belirli çalışma zamanı sürümleri için belgelerde bulabilirsiniz.

       # One-time Azure Synapse Python setup
       wget Synapse-Python38-CPU.yml
       sudo bash Miniforge3-Linux-x86_64.sh -b -p /usr/lib/miniforge3
       export PATH="/usr/lib/miniforge3/bin:$PATH"
       sudo apt-get -yq install gcc g++
       conda env create -n synapse-env -f Synapse-Python38-CPU.yml 
       source activate synapse-env
    
  2. Gerekli bağımlılıkları belirlemek için aşağıdaki betiği çalıştırın. Betik, Spark 3.1 veya Spark 3.2 havuzuna yüklemeyi planladığınız tüm paketleri ve sürümleri içeren requirements.txt dosyanızı geçirmek için kullanılabilir. Giriş kitaplığı gereksinimleriniz için yeni tekerlek dosyalarının/bağımlılıklarının adlarını yazdırır.

       # Command to list wheels needed for your input libraries.
       # This command will list only new dependencies that are
       # not already part of the built-in Azure Synapse environment.
       pip install -r <input-user-req.txt> > pip_output.txt
       cat pip_output.txt | grep "Using cached *"
    

    Not

    Bu betik yalnızca varsayılan olarak Spark havuzunda henüz mevcut olmayan bağımlılıkları listeler.

Oturum kapsamlı paketleri yönetme

Etkileşimli veri analizi veya makine öğrenmesi yaparken daha yeni paketler deneyebilir veya Apache Spark havuzunuzda şu anda kullanılamayan paketlere ihtiyacınız olabilir. Havuz yapılandırmasını güncelleştirmek yerine oturum bağımlılıkları eklemek, yönetmek ve güncelleştirmek için oturum kapsamlı paketleri kullanabilirsiniz.

Oturum kapsamlı paketler, kullanıcıların oturumlarının başında paket bağımlılıklarını tanımlamasına olanak sağlar. Oturum kapsamlı bir paket yüklediğinizde, yalnızca geçerli oturumun belirtilen paketlere erişimi olur. Sonuç olarak, bu oturum kapsamlı paketler aynı Apache Spark havuzunu kullanan diğer oturumları veya işleri etkilemez. Buna ek olarak, bu kitaplıklar temel çalışma zamanı ve havuz düzeyi paketlerin üzerine yüklenir.

Oturum kapsamlı paketleri yönetme hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

  • Python oturum paketleri: Oturumun başlangıcında, popüler depolardan daha fazla Python paketi yüklemek için bir Conda environment.yml dosyası sağlayın. Veya ve %conda komutlarını kullanarak Not defteri kod hücrelerindeki kitaplıkları yönetebilirsiniz%pip.

    Önemli

    Pip veya conda ile kitaplıkları yüklemeyi denemek için kullanmayın%%sh. Davranış % pip veya %conda ile aynı değil.

  • Scala/Java oturum paketleri: Oturumunuzun başında kullanarak yüklenecek %%configure.jar dosyalarının listesini sağlayın.

  • R oturum paketleri: Oturumunuzun içinde veya devtoolskullanarak install.packages Spark havuzunuzdaki tüm düğümlere paket yükleyebilirsiniz.

Azure PowerShell cmdlet'leri ve REST API'leri aracılığıyla kitaplık yönetimi işlemini otomatikleştirme

Ekibiniz paket yönetimi URI'lerini ziyaret etmeden kitaplıkları yönetmek istiyorsa, Azure PowerShell cmdlet'leri veya Azure Synapse Analytics için REST API'leri aracılığıyla çalışma alanı paketlerini ve havuz düzeyinde paket güncelleştirmelerini yönetme seçeneğiniz vardır.

Daha fazla bilgi için aşağıdaki makaleleri inceleyin:

Sonraki adımlar