Azure Synapse Analytics Apache Spark havuzlarını otomatik olarak ölçeklendirme

Azure Synapse Analytics için Apache Spark havuzunun Otomatik Ölçeklendirme özelliği bir küme örneğindeki düğüm sayısının ölçeğini otomatik olarak artırır ve azaltır. Azure Synapse Analytics için yeni bir Apache Spark havuzu oluşturulurken, Otomatik Ölçeklendirme seçildiğinde en az 200 düğüme kadar en az ve en fazla düğüm sayısı ayarlanabilir. Ardından Otomatik Ölçeklendirme yükün kaynak gereksinimlerini izler ve düğüm sayısını artırır veya azaltır. Bu özellik için ek bir ücret uygulanmamaktadır.

Ölçüm izleme

Otomatik ölçeklendirme, Spark örneğini sürekli izler ve aşağıdaki ölçümleri toplar:

Metrik Sistem Açıklama
Toplam Bekleyen CPU Bekleyen tüm işlerin yürütülmesini başlatmak için gereken toplam çekirdek sayısı.
Toplam Bekleyen Bellek Bekleyen tüm işlerin yürütülmesini başlatmak için gereken toplam bellek (MB cinsinden).
Toplam Ücretsiz CPU Etkin düğümlerdeki kullanılmayan tüm çekirdeklerin toplamı.
Toplam Boş Bellek Etkin düğümlerdeki kullanılmayan belleğin (MB cinsinden) toplamı.
Düğüm Başına Kullanılan Bellek Bir düğümdeki yük. 10 GB belleğin kullanıldığı bir düğüm, kullanılan 2 GB belleğe sahip bir çalışandan daha fazla yük altında kabul edilir.

Yukarıdaki ölçümler 30 saniyede bir denetlenmektedir. Otomatik ölçeklendirme, bu ölçümlere göre ölçeği artırma ve azaltma kararları verir.

Yük tabanlı ölçek koşulları

Aşağıdaki koşullar algılandığında, Otomatik Ölçeklendirme bir ölçek isteği gönderir:

Ölçeği büyütme Ölçeği azaltma
Toplam bekleyen CPU, 1 dakikadan uzun bir süre boyunca toplam ücretsiz CPU'dan büyüktür. Toplam bekleyen CPU, 2 dakikadan uzun süre boyunca toplam ücretsiz CPU'dan daha azdır.
Toplam beklemedeki bellek, toplam boş bellekten 1 dakikadan fazladır. Toplam bekleyen bellek, 2 dakikadan uzun süre boyunca toplam boş bellekten daha azdır.

Ölçeği artırmak için Azure Synapse Otomatik Ölçeklendirme hizmeti, geçerli CPU ve bellek gereksinimlerini karşılamak için kaç yeni düğüm gerektiğini hesaplar ve ardından gerekli düğüm sayısını eklemek için bir ölçek artırma isteği verir.

Yürütücü sayısına, düğüm başına uygulama ana yöneticilerine, geçerli CPU ve bellek gereksinimlerine bağlı olarak ölçeği küçültmek için, Otomatik Ölçeklendirme belirli sayıda düğümü kaldırma isteği verir. Hizmet ayrıca geçerli iş yürütmeye göre hangi düğümlerin kaldırılma adayı olduğunu da algılar. Ölçeği azaltma işlemi önce düğümlerin yetkisini alır ve ardından bunları kümeden kaldırır.

Not

Mevcut Spark havuzuna otomatik ölçeklendirme yapılandırmasını güncelleştirme ve uygulamaya zorlama hakkında bir not. Azure portalında veya ForceApplySetting PowerShell'de Yeniye zorla ayarı etkinleştirilirse, mevcut tüm Spark oturumları sonlandırılır ve yapılandırma değişiklikleri hemen uygulanır. Bu seçenek belirlenmezse, yapılandırma yeni Spark oturumlarına uygulanır ve mevcut oturumlar sonlandırılmaz.

Kullanmaya başlayın

Otomatik Ölçeklendirme ile sunucusuz Apache Spark havuzu oluşturma

Otomatik Ölçeklendirme özelliğini etkinleştirmek için, normal havuz oluşturma işleminin bir parçası olarak aşağıdaki adımları tamamlayın:

  1. Temel Bilgiler sekmesinde Otomatik ölçeklendirmeyi etkinleştir onay kutusunu seçin.

  2. Aşağıdaki özellikler için istenen değerleri girin:

    • En az düğüm sayısı.
    • En fazla düğüm sayısı.

İlk düğüm sayısı en az olacaktır. Bu değer, oluşturulduğunda örneğin ilk boyutunu tanımlar. En az düğüm sayısı üçten az olamaz.

İsteğe bağlı olarak, yürütücü gereksinimlerinin spark işinin aşamaları arasında büyük ölçüde farklı olduğu veya işlenen veri hacminin zamanla dalgalandığı senaryolarda yürütücülerin dinamik ayırmasını etkinleştirebilirsiniz. Yürütücülerin Dinamik Ayırmasını etkinleştirerek kapasiteyi gerektiği gibi kullanabiliriz.

Dinamik ayırmayı etkinleştirildiğinde, işin belirtilen yürütücü sayısını en az ve en fazla yürütücü sayısı içinde ölçeklendirmesine olanak tanır.

Apache Spark aşağıdaki gibi kod aracılığıyla Yürütücülerin Dinamik Ayırmasının yapılandırılmasını sağlar:

    %%configure -f
    {
        "conf" : {
            "spark.dynamicAllocation.maxExecutors" : "6",
            "spark.dynamicAllocation.enabled": "true",
            "spark.dynamicAllocation.minExecutors": "2"
     }
    }

Kod aracılığıyla belirtilen varsayılanlar, kullanıcı arabirimi aracılığıyla ayarlanan değerleri geçersiz kılar.

Bu örnekte, işiniz yalnızca 2 yürütücü gerektiriyorsa, yalnızca 2 yürütücü kullanır. İş daha fazlasını gerektirdiğinde 6 yürütücüye (1 sürücü, 6 yürütücü) kadar ölçeklendirilir. İşin yürütücülere ihtiyacı olmadığında yürütücülerin yetkisini alır. Düğüme ihtiyacı yoksa, düğümü boşaltacaktır.

Not

maxExecutors yapılandırılan yürütücü sayısını ayırır. Örneği göz önünde bulundurarak, yalnızca 2 kullansanız bile, 6'yı ayırır.

Bu nedenle, Dinamik ayırmayı etkinleştirildiğinde Yürütücüler, Yürütücülerin kullanımına göre ölçeğini artırır veya küçültür. Bu, Yürütücülerin çalıştırılan işin gereksinimlerine uygun olarak sağlanmasını sağlar.

En iyi yöntemler

Ölçeği artırma veya azaltma işlemlerinin gecikme süresini göz önünde bulundurun

Ölçeklendirme işleminin tamamlanması 1-5 dakika sürebilir.

Ölçeği azaltmaya hazırlanma

Örnek ölçeğini azaltma işlemi sırasında, Otomatik Ölçeklendirme düğümleri yetki alma durumuna getirir, böylece bu düğümde yeni yürütücüler başlatılamıyor.

Çalışan işler çalışmaya ve bitirmeye devam eder. Bekleyen işler, daha az kullanılabilir düğümle normal şekilde zamanlanmasını bekler.

Not

Varsayılan olarak spark.yarn.executor.decommission.enabled true olarak ayarlanır ve işlem verimliliğini iyileştirmek için az kullanılan düğümlerin otomatik olarak kapatılmasını sağlar. Daha az agresif azaltma tercih edilirse, bu yapılandırma false olarak ayarlanabilir.

Sonraki adımlar

Yeni spark havuzu ayarlama hızlı başlangıcı Spark havuzu oluşturma