Apache Spark for Fabric'de Yüksek Eşzamanlılık Modu

Yüksek eşzamanlılık modu, uyumlu Spark iş yüklerinin her iş yükü için ayrı bir oturum başlatmak yerine çalışan bir Spark oturumu paylaşmasına olanak tanır. Bu mod genellikle Doku'daki not defteri ve işlem hattı senaryoları için kullanılır.

Bu makale şunları anlamanıza yardımcı olur:

  • Yüksek eşzamanlılık modunun ne olduğu ve ne zaman kullanılacağı.
  • Oturum paylaşımı gereksinimleri.
  • Paylaşılan oturumlarda faturalama nasıl çalışır?

Standart modda, her not defteri veya işlem hattı etkinliği kendi Spark oturumunu başlatır. Yüksek eşzamanlılık modunda, bir Spark uygulaması her iş yükünü kendi read-eval-print döngüsü (REPL) çekirdeğine atayarak birden çok iş yükünü barındırır. Her REPL çekirdeği yürütme durumunu yalıtdığından, bir iş yükündeki yerel değişkenler başka bir iş yükündeki değişkenlerin üzerine yazmaz.

Paylaşılan oturum zaten çalıştığından, sonraki iş yükleri çok daha hızlı başlatılabilir.

Not

Yüksek eşzamanlılık moduna sahip özel havuzlar için oturum başlatma, standart Spark oturumundan 36 kat daha hızlı olabilir.

Önemli özellikler

Diyagramda yüksek eşzamanlılık modunun üç temel özelliği vurgulanır:

  • Güvenlik: Oturum paylaşımı tek kullanıcılı bir sınır içinde kalır.
  • Çoklu görev: Not defterleri arasında geçiş yapabilir ve yeni bir Spark oturumu oluşturulmasını veya başlatılmasını beklemeden çalışmaya devam edebilirsiniz.
  • Maliyet verimliliği: Paylaşılan oturumlar, veri mühendisliği ve veri bilimi iş yükleri için kaynak kullanımını artırır ve işlem maliyetini azaltır.

Fabric'de yüksek eşzamanlılık modunun çalışmasını gösteren diyagram.

Oturum paylaşımı gereksinimleri

Oturum paylaşımı, bu koşullar karşılandığında geçerlidir:

  • Oturumlar tek kullanıcılı bir sınır içindedir.
  • Oturumlar, aynı varsayılan lakehouse yapılandırmasını kullanır.
  • Oturumlar aynı Spark işlem ayarlarını kullanır.

Herhangi bir koşul farklıysa, Fabric ayrı bir Spark oturumu başlatır.

Oturum başlatma sırasında Doku bir REPL çekirdeği oluşturur. Yeni iş yükleri paylaşılan oturuma katıldığında, yürütücüler açlıktan ölme riskini azaltmak için bu REPL çekirdekleri arasında FAIR zamanlaması kullanılarak ayrılır.

Faturalama davranışı

Yüksek eşzamanlılık modunu kullandığınızda, yalnızca paylaşılan Spark uygulamasını başlatan not defteri veya işlem hattı etkinliği faturalandırılır. Aynı Spark oturumunu paylaşan sonraki oturumlarda ayrı faturalama uygulanmaz.

Example

  • Kullanıcı, yüksek eşzamanlılık modunda Spark oturumu başlatan Not Defteri 1'i başlatır.
  • Aynı oturum daha sonra Not Defteri 2, Not Defteri 3, Not Defteri 4 ve Not Defteri5 tarafından paylaşılır.
  • Bu durumda yalnızca Notebook 1 Spark hesaplaması için faturalandırılır.
  • Paylaşılan not defterleri (2 -5) tek tek faturalandırılamaz.

Bu davranış, başlatma not defterine karşı kullanımın bildirildiği Kapasite Ölçümleri'ne de yansıtılır.

Not

Aynı faturalama davranışı işlem hattı etkinlikleri için de geçerlidir. Yalnızca Spark oturumunu başlatan not defteri veya etkinlik ücretlendirilir.

Dinamik oturum paylaşım sınırı

Varsayılan olarak, yüksek eşzamanlılık oturumu aynı Spark oturumunu paylaşan en fazla beş not defterini destekler. Büyük ölçekli paralel işlem hatları veya yoğun yükte kurumsal analiz gibi daha yüksek not defteri yoğunluğu gerektiren iş yükleri için bu sınırı oturum başına 50 not defterine kadar artırabilirsiniz.

Not

Bu güncelleştirme varsayılan beş sınırını değiştirmez. Bunu artırmak için açıkça ayarlamanız spark.highConcurrency.max gerekir.

Oturum paylaşım sınırını yapılandırma

Not defterlerinizin veya işlem hattıyla tetiklenen not defterlerinizin kullandığı Ortam öğesinde oturum paylaşım sınırını ayarlayın.

  1. Çalışma alanınıza gidin ve Ortamlar'ı açın.

  2. Not defterinize veya işlem hattınıza bağlı Ortamı seçin.

  3. Spark Özellikleri'ni açın.

  4. Aşağıdaki özelliği ekleyin ve 2 ile 50 arasında bir değer ayarlayın:

    spark.highConcurrency.max = <value>
    

    Örneğin, oturum başına en fazla 20 not defterine izin vermek için:

    spark.highConcurrency.max = 20
    
  5. Ortamı kaydedin ve yayımlayın.

Bu Ortamı kullanan tüm not defterleri ve işlem hattı etkinlikleri güncelleştirilmiş sınırı otomatik olarak devralır.

Oturum paylaşım sınırı ne zaman artırılır?

Scenario Önerilen eylem
Birçok not defteri etkinliğine sahip büyük ölçekli paralel işlem hatları Oturum parçalanmayı azaltmak için artırma spark.highConcurrency.max
Çok sayıda eşzamanlı kullanıcıyla yoğun yük etkileşimli iş yükleri Oturum alma sürelerini iyileştirmek için sınırı artırın.
Yoğun paketlemenin işlem harcamalarını azalttığı maliyete duyarlı iş yükleri Eşzamanlılık gereksinimlerinize uyacak şekilde sınırı ayarlama
Katı yalıtım gereksinimleri olan iş yükleri Varsayılan sınırı 5 veya daha düşük tutun

Oturum paylaşım sınırını artırmak şunları sağlar:

  • Yeni bir oturum için bekleme süresini azaltarak yoğun yük sırasında daha hızlı oturum alma.
  • Birçok ayrı oturumda parçalanmadan daha yüksek not defteri yoğunluğu.
  • İş yükü yoğunluğu, maliyet ve fiyat-performans hedeflerine uygun dinamik ayarlama.
  • İşler arasında yalıtım ve eşitliği korurken daha iyi fiyat-performans verimliliği.