Azure Synapse Analytics'te Apache Spark Temel Kavramları

Apache Spark, büyük veri analizi uygulamalarının performansını artırmak için bellek içi işlemeyi destekleyen paralel bir işleme çerçevesidir. Azure Synapse Analytics’te Apache Spark, Microsoft'un buluttaki Apache Spark uygulamalarından biridir.

Azure Synapse, Azure'da Spark özelliklerini oluşturmayı ve yapılandırmayı kolaylaştırır. Azure Synapse, burada belgelenen bu Spark özelliklerinin farklı bir uygulamasını sağlar.

Spark havuzları

Azure portalında sunucusuz bir Apache Spark havuzu oluşturulur. Örneklendiğinde verileri işleyen bir Spark örneği oluşturmak için kullanılan Spark havuzunun tanımıdır. Spark havuzu oluşturulduğunda yalnızca meta veri olarak bulunur ve hiçbir kaynak tüketilmemiş, çalıştırılmamıştır veya ücret alınmaz. Spark havuzu, Bir Spark örneğinin özelliklerini denetleyan bir dizi özelliğe sahiptir. Bu özellikler arasında ad, boyut, ölçeklendirme davranışı, yaşam süresi bulunur ancak bunlarla sınırlı değildir.

Spark havuzları oluşturmayla ilişkili bir dolar veya kaynak maliyeti olmadığından, herhangi bir sayıda farklı yapılandırmayla herhangi bir sayı oluşturulabilir. İzinler Spark havuzlarına da uygulanabilir ve kullanıcıların yalnızca bazılarına erişmesine izin verir ve diğerlerine erişemez.

Geliştirme ve hata ayıklama için kullanılabilecek daha küçük Spark havuzları ve ardından üretim iş yüklerini çalıştırmak için daha büyük spark havuzları oluşturmak en iyi yöntemdir.

Spark havuzu oluşturmayı okuyabilir ve tüm özelliklerini burada görebilirsiniz: Azure Synapse Analytics'te Spark havuzlarını kullanmaya başlama

Spark örnekleri

Spark örnekleri bir Spark havuzuna bağlandığınızda, oturum oluşturduğunuzda ve bir iş çalıştırdığınızda oluşturulur. Birden çok kullanıcının tek bir Spark havuzuna erişimi olabileceğinden, bağlanan her kullanıcı için yeni bir Spark örneği oluşturulur.

İkinci bir iş gönderdiğinizde, havuzda kapasite varsa mevcut Spark örneğinin de kapasitesi vardır. Ardından, mevcut örnek işi işler. Aksi takdirde, kapasite havuz düzeyinde kullanılabilirse yeni bir Spark örneği oluşturulur.

Örneklerin faturalaması, Azure VM'leri başlatıldığında başlar. Spark havuzu örneklerinin faturalaması, havuz örnekleri sonlandırıcı olarak değiştiğinde durur. Azure VM'lerinin nasıl başlatılıp serbest bırakıldığından daha fazla bilgi için bkz. Azure Sanal Makineler durumları ve faturalama durumu.

Örnekler

Örnek 1

  • SP1 adlı bir Spark havuzu oluşturursunuz; 20 orta düğümden oluşan sabit bir küme boyutuna sahiptir
  • 10 düğüm kullanan J1 bir not defteri işi gönderirsiniz, işi işlemek için bir Spark örneği, SI1 oluşturulur
  • Havuzda hala kapasite olduğundan ve J2 örneği SI1 tarafından işlendiğinden 10 düğüm kullanan başka bir J2 işi gönderebilirsiniz
  • J2 11 düğüm istemiş olsaydı SP1 veya SI1'de kapasite olmazdı. Bu durumda, J2 bir not defterinden geliyorsa iş reddedilir; J2 bir toplu işlemden geliyorsa kuyruğa alınır.
  • Faturalama, J1 not defteri işinin gönderiminde başlar.
    • Spark havuzunun örneği her biri 8 sanal çekirdek içeren 20 orta düğümle oluşturulur ve genellikle başlatılması yaklaşık 3 dakika sürer. 20 x 8 = 160 sanal çekirdek.
    • Spark havuzunun tam başlangıç zamanına, boşta kalma zaman aşımına ve iki not defteri işinin çalışma zamanına bağlı olarak; havuzun 18 ila 20 dakika (Spark havuzu örnekleme süresi + not defteri işi çalışma zamanı + boşta kalma zaman aşımı) çalışması olasıdır.
    • 20 dakikalık çalışma zamanı varsayıldığında, 160 x 0,3 saat = 48 sanal çekirdek saati.
    • Not: Sanal çekirdek saatleri dakika başına faturalandırılır ve sanal çekirdek fiyatlandırması Azure bölgesine göre değişir. Daha fazla bilgi için bkz. Azure Synapse Fiyatlandırması

Örnek 2

  • Spark havuz çağrısı SP2 oluşturursunuz; en az 10 ile en fazla 20 orta düğüm arasında bir otomatik ölçeklendirme etkindir
  • 10 düğüm kullanan bir not defteri işi J1 gönderirsiniz; İşi işlemek için bir Spark örneği SI1 oluşturulur
  • Şimdi 10 düğüm kullanan başka bir iş J2 gönderirsiniz; Havuzda hala kapasite olduğundan, örnek otomatik olarak 20 düğüme ölçeklenip J2'yi işler.
  • Faturalama, J1 not defteri işinin gönderiminde başlar.
    • Spark havuzunun örneği her biri 8 sanal çekirdek içeren 10 orta düğümle oluşturulur ve genellikle başlatılması yaklaşık 3 dakika sürer. 10 x 8, 80 sanal çekirdek.
    • J2 gönderiminde, havuz 10 orta düğüm daha ekleyerek otomatik olarak ölçeklenir ve genellikle otomatik ölçeklendirme 4 dakika sürer. Toplam 160 sanal çekirdek için 10 x 8, 80 sanal çekirdek ekleme.
    • Spark havuzu başlangıç zamanına, ilk not defteri işinin çalışma zamanı J1'e, havuzun ölçeğini artırma süresine, ikinci not defterinin çalışma zamanına ve son olarak boşta kalma zaman aşımına bağlı olarak; havuzun 22 ila 24 dakika (Spark havuzu örnekleme süresi + J1 not defteri işi çalışma zamanının tümü 80 sanal çekirdekte) + (Spark havuzu otomatik ölçeklendirme süresi + J2 not defteri işi çalışma zamanı + 160 sanal çekirdekte boşta kalma zaman aşımı) çalıştırma olasılığı yüksektir.
    • 4 dakika için 80 sanal çekirdek + 20 dakika için 160 sanal çekirdek = 58,67 sanal çekirdek saati.
    • Not: Sanal çekirdek saatleri dakika başına faturalandırılır ve sanal çekirdek fiyatlandırması Azure bölgesine göre değişir. Daha fazla bilgi için bkz. Azure Synapse Fiyatlandırması

Örnek 3

  • SP1 adlı bir Spark havuzu oluşturursunuz; 20 düğümden oluşan sabit bir küme boyutuna sahiptir.
  • 10 düğüm kullanan bir not defteri işi J1 gönderirsiniz; işi işlemek için bir Spark örneği SI1 oluşturulur.
  • Başka bir kullanıcı U2, 10 düğüm kullanan bir İş J3'ü gönderir; işi işlemek için yeni bir Spark örneği SI2 oluşturulur.
  • Şimdi 10 düğüm kullanan başka bir iş J2 gönderirsiniz; çünkü havuzda hala kapasite var ve J2 örneği SI1 tarafından işleniyor.
  • Faturalama, J1 not defteri işinin gönderiminde başlar.
    • Spark havuzu SI1, her biri 8 sanal çekerek 20 orta düğümle oluşturulur ve genellikle başlatılması yaklaşık 3 dakika sürer. 20 x 8, 160 sanal çekirdek.
    • Spark havuzunun tam başlangıç zamanına, ide zaman aşımına ve ilk ve üçüncü not defteri işinin çalışma zamanına bağlı olarak; SI1 havuzunun 18 ila 20 dakika (Spark havuzu örnekleme süresi + not defteri işi çalışma zamanı + boşta kalma zaman aşımı) çalışması olasıdır.
    • Başka bir Spark havuzu SI2 örneği, her biri 8 sanal çekile sahip 20 orta düğümle oluşturulur ve genellikle başlatılması yaklaşık 3 dakika sürer. 20 x 8, 160 sanal çekirdek
    • Spark havuzunun tam başlangıç zamanına, ide zaman aşımına ve ilk not defteri işinin çalışma zamanına bağlı olarak; SI2 havuzunun 18 ile 20 dakika arasında çalışması olasıdır (Spark havuzu örnekleme süresi + not defteri iş zamanı + boşta kalma zaman aşımı).
    • İki havuzun her biri 20 dakika boyunca çalıştığı varsayıldığında, 160 x .03 x 2 = 96 sanal çekirdek saati.
    • Not: Sanal çekirdek saatleri dakika başına faturalandırılır ve sanal çekirdek fiyatlandırması Azure bölgesine göre değişir. Daha fazla bilgi için bkz. Azure Synapse Fiyatlandırması

Azure Synapse için Apache Spark'ta kotalar ve kaynak kısıtlamaları

Çalışma alanı düzeyi

Her Azure Synapse çalışma alanı, Spark için kullanılabilecek varsayılan sanal çekirdek kotasıyla birlikte gelir. Kota, kullanıcı kotası ile veri akışı kotası arasında bölünür, böylece hiçbir kullanım deseni çalışma alanındaki tüm sanal çekirdekleri kullanmaz. Kota, aboneliğinizin türüne bağlı olarak farklılık gösterir ancak, kullanıcı ile veri akışı arasında simetriktir. Ancak çalışma alanında kalandan daha fazla sanal çekirdek isterseniz aşağıdaki hatayı alırsınız:

Failed to start session: [User] MAXIMUM_WORKSPACE_CAPACITY_EXCEEDED
Your Spark job requested 480 vCores.
However, the workspace only has xxx vCores available out of quota of yyy vCores.
Try reducing the numbers of vCores requested or increasing your vCore quota. Click here for more information - https://go.microsoft.com/fwlink/?linkid=213499

İletideki bağlantı bu makaleyi gösterir.

Aşağıdaki makalede, çalışma alanı sanal çekirdek kotasında nasıl artış istendiği açıklanmaktadır.

  • Hizmet türü olarak "Azure Synapse Analytics" seçeneğini belirleyin.
  • Kota ayrıntıları penceresinde Çalışma alanı başına Apache Spark (sanal çekirdek) seçeneğini belirleyin

Azure portalı üzerinden kapasite artışı isteme

Spark havuzu düzeyi

Spark havuzu tanımlarken, bu havuz için kullanıcı başına etkili bir şekilde kota tanımlarsınız. Birden çok not defteri veya iş ya da 2'nin bir karışımını çalıştırırsanız havuz kotasını tüketebilirsiniz. Bunu yaparsanız bir hata iletisi oluşturulur

Failed to start session: Your Spark job requested xx vCores.
However, the pool is consuming yy vCores out of available zz vCores.Try ending the running job(s) in the pool, reducing the numbers of vCores requested, increasing the pool maximum size or using another pool

Bu sorunu çözmek için, bir not defteri veya iş çalıştırarak yeni bir kaynak isteği göndermeden önce havuz kaynaklarını kullanımınızı azaltmanız gerekir.

Sonraki adımlar