Aracılığıyla paylaş


Azure Synapse çalışma zamanları

Azure Synapse'teki Apache Spark havuzları, Azure Synapse iyileştirmeleri, paketleri ve bağlayıcıları gibi temel bileşen sürümlerini belirli bir Apache Spark sürümüyle birleştirmek için çalışma zamanlarını kullanır. Her çalışma zamanı düzenli aralıklarla yeni iyileştirmeler, özellikler ve düzeltme ekleri içerecek şekilde yükseltilir. Sunucusuz bir Apache Spark havuzu oluşturduğunuzda ilgili Apache Spark sürümünü seçin. Buna bağlı olarak havuz, ilişkili çalışma zamanı bileşenleri ve paketleriyle önceden yüklenmiş olarak gelir.

Çalışma zamanları aşağıdaki avantajlara sahiptir:

  • Daha hızlı oturum başlatma süreleri
  • Belirli Apache Spark sürümleriyle test edilmiş uyumluluk
  • Popüler, uyumlu bağlayıcılara ve açık kaynak paketlere erişim

Desteklenen Azure Synapse çalışma zamanı sürümleri

İpucu

İş yüklerini apache Spark 3.5 (GA) için Azure Synapse Runtime olan daha yeni bir GA sürümüne proaktif olarak yükseltmenizi kesinlikle öneririz. Apache Spark geçiş kılavuzuna bakın.

Aşağıdaki tabloda desteklenen Azure Synapse Runtime sürümleri için çalışma zamanı adı, Apache Spark sürümü ve yayın tarihi listelenmektedir.

Çalışma zamanı adı Nakledilebilecek tarih Yayın aşaması Destek Sonu duyuru tarihi Destek Sonu geçerlilik tarihi
Apache Spark 3.5 için Azure Synapse Runtime 13 Ekim 2025, Saat 2025 Georgia 31 Ekim 2026, Saat 2026, Ekim 2026, Saat 20:00 31 Ekim 2027, Saat 2027
Apache Spark 3.4 için Azure Synapse Runtime 21 No.2023 EOSA 30 Nisan 2025 1. S 2026
Apache Spark 3.3 için Azure Synapse Runtime 17 No'lu 2022 kullanım dışı bırakıldı ve yakında devre dışı bırakılacak 12 Temmuz 2024, Saat 20:00 31 Mart 2025

Çalışma zamanı sürüm aşamaları

Apache Spark yaşam döngüsü ve destek ilkeleri için tam çalışma zamanı için Apache Spark yaşam döngüsü ve desteklenebilirliği için Synapse çalışma zamanına bakın.

Çalışma zamanı düzeltme eki uygulama

Apache Spark düzeltme ekleri için Azure Synapse çalışma zamanları Apache Spark çekirdek altyapısı, dil ortamları, bağlayıcılar ve kitaplıklar için hata, özellik ve güvenlik düzeltmeleri içeren aylık olarak dağıtılır.

Not

  • Bakım güncelleştirmeleri, belirli bir sunucusuz Apache Spark havuzu için yeni oturumlara otomatik olarak uygulanır.
  • Yeni çalışma zamanı sürümlerini kullanırken uygulamalarınızın düzgün çalıştığını test etmeli ve doğrulamalısınız.

Önemli

Log4j 1.2.x güvenlik düzeltme ekleri

Açık kaynak Log4j kitaplığı sürüm 1.2.x'te, burada açıklandığı gibi bilinen çeşitli CV'ler (Ortak Güvenlik Açıkları ve Etkilenmeler) vardır.

Tüm Synapse Spark Havuzu çalışma zamanlarında, şu CVE'leri azaltmak için Log4j 1.2.17 JAR'lerine düzeltme eki ekledik: CVE-2019-1751, CVE-2020-9488, CVE-2021-4104, CVE-2022-23302, CVE-2022-2330, CVE-2022-23307

Uygulanan düzeltme eki, güvenlik açıklarını çağırmak için gereken aşağıdaki dosyaları kaldırarak çalışır:

  • org/apache/log4j/net/SocketServer.class
  • org/apache/log4j/net/SMTPAppender.class
  • org/apache/log4j/net/JMSAppender.class
  • org/apache/log4j/net/JMSSink.class
  • org/apache/log4j/jdbc/JDBCAppender.class
  • org/apache/log4j/chainsaw/*

Yukarıdaki sınıflar Synapse'teki varsayılan Log4j yapılandırmalarında kullanılmamış olsa da, bazı kullanıcı uygulamalarının yine de buna bağlı olması mümkündür. Uygulamanızın bu sınıfları kullanması gerekiyorsa, Spark Havuzu'na güvenli bir Log4j sürümü eklemek için Kitaplık Yönetimi'ni kullanın. Güvenlik açıklarını yeniden kullanıma sunarken Log4j sürüm 1.2.17'yi kullanmayın.

Düzeltme eki ilkesi çalışma zamanı yaşam döngüsü aşamasına göre farklılık gösterir:

  • Genel Kullanıma Açık (GA) çalışma zamanı: Ana sürümlerde (3.x -> 4.x) yükseltme alma. Ayrıca, kullanımdan kaldırma veya regresyon etkisi olmadığı sürece ikincil sürümü (3.x -> 3.y) yükseltir.

  • Önizleme çalışma zamanı: Kesinlikle gerekli olmadıkça ana sürüm yükseltmesi yoktur. Çalışma zamanına en son özellikleri eklemek için ikincil sürümler (3.x -> 3.y) yükseltilecektir.

  • Uzun Süreli Destek (LTS) çalışma zamanına yalnızca güvenlik düzeltmeleri ile düzeltme eki uygulanır.

  • Destek Sonu duyurulu çalışma zamanının hata ve özellik düzeltmeleri olmayacaktır. Güvenlik düzeltmeleri, risk değerlendirmesine göre geri gönderilir.

Apache Spark sürümleri arasında geçiş - destek

Bu rehber, Azure Synapse Runtime'larını Apache Spark iş yükleri için en son GA sürümüne, örneğin 3.5'e yükseltmek isteyen kullanıcılar için yapılandırılmış bir yaklaşım sunar. En son sürüme yükseltmek, kullanıcıların performans geliştirmelerinden, yeni özelliklerden ve geliştirilmiş güvenlik önlemlerinden yararlanmasını sağlar. Daha yüksek bir sürüme geçmenin uyumsuzluklar veya kullanım dışı özellikler nedeniyle mevcut Spark kodunuzda ayarlamalar gerektirebileceğini unutmayın.

1. Adım: Değerlendirme ve planlama

  • Uyumu Değerlendirin: Mevcut Spark sürümünüz ile hedef sürüm (örneğin, 3.5) arasında olası uyumsuzlukları, kullanımdan çıkmış özellikleri ve yeni API'leri tespit etmek için Apache Spark göç kılavuzlarını inceleyerek başlayın.
  • Kod Tabanını Analiz Etme: Kullanım dışı veya değiştirilmiş API'lerin kullanımını belirlemek için Spark kodunuzu dikkatle inceleyin. Yükseltmeden etkilenebilen SQL sorgularına ve Kullanıcı Tanımlı İşlevlere (UDF) özellikle dikkat edin.

2. Adım: Test için yeni bir Spark havuzu oluşturma

  • Yeni Havuz Oluşturma: Azure Synapse'te Spark havuzları bölümüne gidin ve yeni bir Spark havuzu ayarlayın. Hedef Spark sürümünü (örneğin 3.5) seçin ve performans gereksinimlerinize göre yapılandırın.
  • Spark Pool Konfigürasyonu: Yeni Spark havuzunuzdaki tüm kütüphanelerin ve bağımlılıkların Spark 3.5 ile uyumlu olacak şekilde güncellendiğinden veya değiştirildiğinden emin olun.

3. Adım: Kodunuzu geçirme ve test edin

  • Kod Göç: Kodunuzu Apache Spark 3.5'teki yeni veya revize edilmiş API'lerle uyumlu olacak şekilde güncelleyin. Bu, kullanım dışı bırakılan işlevleri ele alma ve resmi Apache Spark belgelerinde ayrıntılı olarak açıklandığı gibi yeni özellikleri benimsemeyi içerir.
  • Geliştirme Ortamında Test Etme: Güncelleştirilmiş kodunuzu yerel olarak değil Azure Synapse'te bir geliştirme ortamında test edin. Bu adım, üretime geçmeden önce sorunları belirlemek ve düzeltmek için gereklidir.
  • Yerleştirin ve İzleyin: Geliştirme ortamında kapsamlı test ve doğrulamadan sonra, uygulamanızı yeni Spark 3.5 havuzuna yerleştirin. Uygulamayı beklenmeyen davranışlar için izlemek kritik önem taşır. Spark uygulamalarınızın performansını izlemek için Azure Synapse'te sağlanan izleme araçlarını kullanın.

Soru: 3.X'e geçiş için hangi adımlar atılmalıdır?

Yanıt: Apache Spark geçiş kılavuzuna bakın.

Soru: Ekli kitaplıkları olduğunda PowerShell cmdlet'ini kullanarak Spark havuzu çalışma zamanını yükseltmeye çalıştığımda bir hata aldım.

Yanıt: Synapse çalışma alanınızda yüklü özel kitaplıklarınız varsa PowerShell cmdlet'ini kullanmayın. Bunun yerine şu adımları izleyin:

  1. Spark Havuzunuzu sıfırdan yeniden oluşturun.
  2. Mevcut Spark Pool'u düşürün, bağlı paketleri kaldırın ve ardından 3.5 gibi en son GA sürümüne tekrar yükseltin

Soru: Neden yeni bir Spark havuzu oluşturmadan 3.5'e yükseltiyorum?

Yanıt: UX'ten buna izin verilmez, müşteri Spark sürümünü güncelleştirmek için Azure PowerShell'i kullanabilir. Mevcut kümelerin (eski sürüme sahip) kullanımdan kaldırılmış olması için "ForceApplySetting" kullanın.

Örnek sorgu:

$_target_work_space = @("workspace1", "workspace2")

Get-AzSynapseWorkspace |
    ForEach-Object {
        if ($_target_work_space -contains $_.Name) {
            $_workspace_name = $_.Name
            Write-Host "Updating workspace: $($_workspace_name)"
            Get-AzSynapseSparkPool -WorkspaceName $_workspace_name |
            ForEach-Object {
                Write-Host "Updating Spark pool: $($_.Name)"
                Write-Host "Current Spark version: $($_.SparkVersion)"
        
                Update-AzSynapseSparkPool -WorkspaceName $_workspace_name -Name $_.Name -SparkVersion 3.5 -ForceApplySetting
              }
        }
    }