Aracılığıyla paylaş


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. Hem Azure Synapse çalışma alanı hem de Synapse Spark havuzu oluşturmanız gerekmez.

Örnek türü ve Apache Spark çalışma zamanı sürümü dahil olmak üzere kaynakları tanımlayabilirsiniz. Aşağıdakiler için Azure Machine Learning not defterlerinde sunucusuz Spark bilgi işlemlerine erişmek için bu kaynakları kullanın:

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 bu yaklaşımın avantajlarını ve dezavantajlarını göz önünde bulundurun.

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ı Hive meta deposu yok. Sunucusuz Spark işlem yalnızca bellek içi Spark SQL'i destekler.
  • Kullanılabilir tablo veya veritabanı yok.
  • Azure Purview tümleştirmesi yok.
  • 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 kaynağının sağlanması için zamana ihtiyacı olduğundan bu gecikme gerçekleşir. 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ışı süreden sonra sona erer. Sonraki 10 dakika içinde başka bir Spark oturumu başlatılmazsa, sistem sunucusuz Spark işlem için sağlanan kaynakları yok eder.

Sistem sunucusuz Spark işlem kaynağını yok ettikten sonra, bir sonraki işi göndermek için soğuk başlangıç gereklidir. Aşağıdaki görselleştirmede bazı oturum etkinlik dışı kalma süresi ve küme yırtma senaryoları gösterilmektedir.

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 uysa. Azure Synapse temel görüntüsünde gerekli bir paketin zaten kullanılabilir olup olmadığını denetleyin. Bunu yapmak için, kullanılan Apache Spark sürümü için temel görüntüde kullanılabilir paketleri belirlemek üzere şu kaynakları ziyaret edin:

Not

Oturum düzeyi Conda paketi için:

  • Soğuk başlangıç için yaklaşık 10-15 dakika gerekir.
  • Aynı Conda paketinin kullanıldığı Sıcak başlangıç için yaklaşık bir dakika gerekir.
  • Farklı bir Conda paketiyle Sıcak başlangıç için yaklaşık 10-15 dakika gerekir.
  • Büyük bir paket veya uzun bir yükleme süresi gerektiren bir paket yüklerseniz Bu, Spark örneğinin 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

Spark oturumu soğuk başlangıç zamanını iyileştirmek için spark.hadoop.aml.enable_cache yapılandırma değişkenini true olarak ayarlayın. Oturum düzeyi Conda paketleriyle oturum soğuk başlatma işlemi genellikle oturum ilk kez başlatıldığında 10 ile 15 dakika arasında 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 spark havuzu oluşturduğunuzda, buna ekli Synapse Spark havuzuyla Azure Machine Learning çalışma alanından erişebilirsiniz. Bu seçenek, mevcut bir Synapse Spark havuzunu yeniden kullanmak isteyen kullanıcılar için iyidir.

Azure Machine Learning çalışma alanına Synapse Spark havuzu eklemek için Azure Machine Learning'de havuzu kullanabilmeniz için daha fazla adımı tamamlamanız gerekir:

Ekli Synapse Spark havuzu, yerel Azure Synapse özelliklerine erişim sağlar. Synapse Spark havuzunu sağlamak, eklemek, yapılandırmak ve yönetmek sizin sorumluluğundadır.

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üşünün. 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ımlarsanız Spark işinizin toplam 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 kullandığınız kimliğe Katkıda Bulunan ve Depolama Blob Verileri 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