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ı hem Azure Synapse çalışma alanı hem de Synapse Spark havuzu oluşturma gereksiniminden kaçınabilir.
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:
- Etkileşimli Spark kodu geliştirme
- Spark bileşeniyle makine öğrenmesi işlem hatlarını çalıştırma
- Spark toplu iş gönderimleri
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
mssparkutils
yalnı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ı 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.
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. Ö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ın, kullanılan Apache Spark sürümü için temel görüntüde kullanılabilir paketleri belirlemek üzere bu kaynakları ziyaret etmesi gerekir:
Ö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 Apache Spark 3.4'e geçmenizi öneririz
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.
- 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ı geliştirmek için yapılandırma değişkenini true
olarak ayarlayabilirsinizspark.hadoop.aml.enable_cache
. 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.
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 daha fazla adım gerekir:
- Etkileşimli Spark kodu geliştirme
- Spark toplu iş gönderimi
- Spark bileşeniyle makine öğrenmesi işlem hatlarını çalıştırma
Ekli Synapse Spark havuzu, yerel Azure Synapse özelliklerine erişim sağlar. Kullanıcı Synapse Spark havuzunun sağlanmasından, eklenmesinden, yapılandırmasından ve yönetiminden 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 kullanacağı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
- Azure Machine Learning'de Synapse Spark havuzu ekleme ve yönetme
- Azure Machine Learning'de Apache Spark ile etkileşimli veri düzenleme
- Azure Machine Learning'de Spark işlerini gönderme
- Azure Machine Learning CLI kullanarak Spark işleri için kod örnekleri
- Azure Machine Learning Python SDK'sını kullanarak Spark işleri için kod örnekleri