Azure Machine Learning'de Apache Spark

Azure Synapse Analytics ile Azure Machine Learning tümleştirmesi, Apache Spark çerçevesi aracılığıyla dağıtılmış hesaplama kaynaklarına kolay erişim sağlar. Bu tümleştirme şu Apache Spark bilgi işlem deneyimlerini sunar:

  • Sunucusuz Spark işlem
  • Ekli Synapse Spark havuzu

Sunucusuz Spark işlem

Apache Spark çerçevesi ile Azure Machine Learning sunucusuz Spark işlemi, Azure Machine Learning ortamında dağıtılmış bilgi işlem görevlerini gerçekleştirmenin en kolay yoludur. Azure Machine Learning tam olarak yönetilen, sunucusuz, isteğe bağlı bir Apache Spark işlem kümesi sunar. Kullanıcıları bir Azure Synapse çalışma alanı ve Synapse Spark havuzu oluşturma gereksinimini ortadan kaldırmayı tercih edebilir.

Kullanıcılar örnek türü ve Apache Spark çalışma zamanı sürümü de dahil olmak üzere kaynakları tanımlayabilir. Daha sonra azure machine learning not defterlerinde sunucusuz Spark işlemlerine erişmek için bu kaynakları kullanabilirler:

Dikkat edilmesi gereken noktalar

Sunucusuz Spark işlemi, Apache Spark aracılığıyla dağıtılmış bilgi işlem kaynaklarına hızlı erişim gerektiren çoğu kullanıcı senaryosunda iyi çalışır. Ancak, bilinçli bir karar vermek için kullanıcılar bu yaklaşımın avantajlarını ve dezavantajlarını göz önünde bulundurmalıdır.

Avantajlar:

  • Apache Spark için başka Azure kaynakları oluşturma konusunda bağımlılık yoktur (Azure Synapse altyapısı arka planda çalışır).
  • Azure Synapse ile ilgili kaynaklar oluşturmak için gerekli abonelik izinleri yok.
  • SQL havuzu kotalarına gerek yoktur.

Dezavantajlar:

  • Kalıcı bir Hive meta veri deposu eksik. Sunucusuz Spark işlem yalnızca bellek içi Spark SQL'i destekler.
  • Kullanılabilir tablo veya veritabanı yok.
  • Eksik Azure Purview tümleştirmesi.
  • Kullanılabilir bağlı hizmet yok.
  • Daha az veri kaynağı ve bağlayıcı.
  • Havuz düzeyinde yapılandırma yok.
  • Havuz düzeyinde kitaplık yönetimi yok.
  • için mssparkutilsyalnızca kısmi destek.

Ağ yapılandırması

Azure Machine Learning ve sunucusuz Spark işlem ile ağ yalıtımını kullanmak için yönetilen bir sanal ağ kullanın.

Etkinlik dışı dönemler ve yırtılma mekanizması

İlk başlatmada, sunucusuz spark işlem (soğuk başlangıç) kaynağının Spark oturumunu başlatmak için üç ile beş dakika arası bir süre geçmesi gerekebilir. Azure Synapse tarafından desteklenen otomatik sunucusuz Spark işlem sağlama, bu gecikmeye neden olur. Sunucusuz Spark işlemi sağlandıktan ve Apache Spark oturumu başlatıldıktan sonra, sonraki kod yürütmeleri (sıcak başlangıç) bu gecikmeyle karşılaşmaz.

Spark oturumu yapılandırması, oturum zaman aşımını (dakika cinsinden) tanımlayan bir seçenek sunar. Spark oturumu, kullanıcı tanımlı zaman aşımını aşan bir etkinlik dışı kalma süresinden sonra sona erer. Sonraki 10 dakika içinde başka bir Spark oturumu başlatılmazsa sunucusuz Spark işlem için sağlanan kaynaklar kapatılır.

Sunucusuz Spark işlem kaynağının yok edilmesinden sonra, bir sonraki işin gönderilmesi için soğuk bir başlangıç gerekir. Sonraki görselleştirmede bazı oturum etkinlik dışı kalma süresi ve küme yırtılma senaryoları gösterilir.

Apache Spark oturumu etkinlik dışı kalma süresi ve küme yırtılma senaryolarını gösteren genişletilebilir diyagram.

Oturum düzeyinde Conda paketleri

Conda bağımlılığı YAML dosyası, bir oturum yapılandırmasında birçok oturum düzeyinde Conda paketi tanımlayabilir. YAML dosyasında tanımlanan Conda paketlerinin yüklenmesi 15 dakikadan uzun sürerse oturum zaman aşımına uyacaktır. Öncelikle gerekli bir paketin Azure Synapse temel görüntüsünde zaten kullanılabilir olup olmadığını denetlemek önemlidir. Bunu yapmak için kullanıcılar, kullanılan Apache Spark sürümü için temel görüntüde kullanılabilir paketleri belirlemek üzere bağlantıyı izlemelidir:

Önemli

Apache Spark için Azure Synapse Runtime: Duyurular

  • Apache Spark 3.2 için Azure Synapse Runtime:
    • EOLA Duyuru Tarihi: 8 Temmuz 2023
    • Destek Sonu Tarihi: 8 Temmuz 2024. Bu tarihten sonra çalışma zamanı devre dışı bırakılır.
  • Sürekli destek ve en iyi performans için

Not

Oturum düzeyi Conda paketi için:

  • Soğuk başlangıç yaklaşık on ile on beş dakika sürer.
  • Aynı Conda paketinin kullanıldığı Sıcak başlangıç için yaklaşık bir dakika gerekir.
  • Sıcak başlangıç, farklı bir Conda paketi ile, ayrıca yaklaşık on on beş dakika gerekir.
  • Yüklediğiniz paket büyükse veya uzun bir yükleme süresine ihtiyaç duyuyorsa Spark örneği başlangıç süresini etkileyebilir.
  • PySpark, Python, Scala/Java, .NET veya Spark sürümünün değiştirilmesi desteklenmez.
  • Docker görüntüleri desteklenmez.

Oturum düzeyinde Conda paketlerini kullanırken oturumun soğuk başlangıç süresini iyileştirme

Yapılandırma değişkenini trueolarak ayarlayarak spark.hadoop.aml.enable_cache Spark oturumu soğuk başlangıç zamanını geliştirebilirsiniz. Oturum düzeyi Conda paketleriyle oturuma soğuk başlangıç genellikle oturum ilk kez başlatıldığında 10-15 dakika sürer. Ancak, sonraki oturum soğuk başlar üç beş dakika sürer. Yapılandırma ayarlarının altındaki Oturum kullanıcı arabirimini yapılandır bölümünde yapılandırma değişkenini tanımlayın.

Önbelleği etkinleştiren Spark oturumu yapılandırma etiketini gösteren genişletilebilir diyagram.

Ekli Synapse Spark havuzu

Azure Synapse çalışma alanında oluşturulan spark havuzu, ekli Synapse Spark havuzuyla Azure Machine Learning çalışma alanında kullanılabilir hale gelir. Bu seçenek, mevcut bir Synapse Spark havuzunu yeniden kullanmak isteyen kullanıcılar için uygun olabilir.

Synapse Spark havuzunun Azure Machine Learning çalışma alanına ekli olması için Azure Machine Learning'de havuzu kullanabilmeniz için başka adımlar gerekir:

Ekli Synapse Spark havuzu, yerel Azure Synapse özelliklerine erişim sağlar. Kullanıcı Synapse Spark havuzu sağlama, ekleme, yapılandırma ve yönetimden sorumludur.

Ekli synapse Spark havuzu için Spark oturumu yapılandırması, oturum zaman aşımını tanımlama seçeneği de sunar (dakika cinsinden). Oturum zaman aşımı davranışı, önceki bölümdeki açıklamaya benzer, ancak oturum zaman aşımından sonra ilişkili kaynaklar hiçbir zaman yıkılmaz.

Spark küme boyutunu tanımlama

Azure Machine Learning Spark işlerinde Spark küme boyutunu üç parametre değeriyle tanımlayabilirsiniz:

  • Yürütücü sayısı
  • Yürütücü çekirdekleri
  • Yürütücü belleği

Azure Machine Learning Apache Spark yürütücüsİnİ Azure Spark çalışan düğümlerine eşdeğer olarak düşünmelisiniz. Bu parametreleri bir örnek açıklayabilir. Yürütücü sayısını 6 (altı çalışan düğümüne eşdeğer), yürütücü çekirdeği sayısını 4 ve yürütücü belleğini 28 GB olarak tanımladığını varsayalım. Spark işinizin toplamda 24 çekirdeği ve 168 GB belleği olan bir kümeye erişimi olur.

Spark işleri için kaynak erişimini sağlama

Spark işi, verilere ve diğer kaynaklara erişmek için yönetilen kimlik veya kullanıcı kimliği geçişi kullanabilir. Bu tablo, Spark işlerinin kaynaklara erişmek için kullandığı mekanizmaları özetler.

Spark havuzu Desteklenen kimlikler Varsayılan kimlik
Sunucusuz Spark işlem Çalışma alanına eklenen kullanıcı kimliği, kullanıcı tarafından atanan yönetilen kimlik Kullanıcı kimliği
Ekli Synapse Spark havuzu Kullanıcı kimliği, ekli Synapse Spark havuzuna eklenen kullanıcı tarafından atanan yönetilen kimlik, ekli Synapse Spark havuzunun sistem tarafından atanan yönetilen kimliği Ekli Synapse Spark havuzunun sistem tarafından atanan yönetilen kimliği

Bu makalede Spark işleri için kaynak erişimi açıklanmaktadır. Not defteri oturumunda, hem sunucusuz Spark işlem hem de ekli Synapse Spark havuzu, etkileşimli veri düzenleme sırasında veri erişimi için kullanıcı kimliği geçişini kullanır.

Not

  • Spark işinin başarıyla yürütülmesini sağlamak için, Spark işi gönderimi için kullanılacak kimliğe Katkıda Bulunan ve Depolama Blob Veri Katkıda Bulunanı rollerini (veri girişi ve çıkışı için kullanılan Azure depolama hesabında) atayın.
  • Ekli bir Synapse Spark havuzu Azure Synapse çalışma alanında Synapse Spark havuzuna işaret ederse ve bu çalışma alanıyla ilişkilendirilmiş yönetilen bir sanal ağ varsa, yönetilen özel uç noktayı bir depolama hesabına yapılandırın. Bu yapılandırma, veri erişiminin sağlanmasına yardımcı olur.

Sonraki adımlar