Panoları kullanarak Azure Databricks ölçümlerini görselleştirme

Bu makalede grafana panosunun performans sorunlarına karşı iş Azure Databricks nasıl ayarlandırabilirsiniz?

Azure Databricks, büyük veri analizi ve yapay zeka (AI) çözümlerinihızla geliştirmeyi ve dağıtmayı kolaylaştıran hızlı, güçlü ve işbirliğine dayalı Apache Spark tabanlı bir analiz hizmetidir. İzleme, üretimde iş yüklerini Azure Databricks kritik bir bileşendir. İlk adım, ölçümleri analiz için bir çalışma alanında toplamaktır. Azure'da günlük verilerini yönetmek için en iyi çözüm Azure İzleyici. Azure Databricks günlük verilerini Azure İzleyici'ye göndermeyi yerel olarak desteklemez, ancak bu işlev için bir kitaplıkGitHub.

Bu kitaplık, hem Azure Databricks ölçümlerinin günlüğe kaydını hem de Apache Spark sorgu olayı ölçümlerini günlüğe kaydetmeyi sağlar. Bu kitaplığı bir Azure Databricks kümesine başarıyla dağıttıktan sonra, üretim ortamınız kapsamında dağıtabilirsiniz bir dizi Grafana panosu daha da dağıtabilirsiniz.

Panonun ekran görüntüsü

Önkoşullar

Kümenizi Azure Databricks kitaplığını kullanmak için beni okuyun konusunda açıklandığı gibi GitHub yapılandırabilirsiniz.

Azure Log Analytics çalışma alanını dağıtma

Azure Log Analytics çalışma alanını dağıtmak için şu adımları izleyin:

  1. dizinine /perftools/deployment/loganalytics gidin.

  2. logAnalyticsDeploy.json dosyasını Azure Resource Manager dağıtın. Uygulama şablonları dağıtma hakkında daha fazla Resource Manager için bkz. Resource Manager şablonları ve Azure CLI ile kaynakları dağıtma. Şablon aşağıdaki parametrelere sahip:

    • location:Log Analytics çalışma alanının ve panoların dağıtılacağı bölge.
    • serviceTier:Çalışma alanı fiyatlandırma katmanı. Geçerli değerlerin listesi için buraya bakın.
    • dataRetention (isteğe bağlı): Günlük verileri Log Analytics çalışma alanında kaç gün boyunca korunacak? Varsayılan değer 30 gündür. Fiyatlandırma katmanı Free ise, veri saklamanın yedi gün olması gerekir.
    • workspaceName (isteğe bağlı): Çalışma alanı için bir ad. Belirtilmezse şablon bir ad oluşturur.
    az group deployment create --resource-group <resource-group-name> --template-file logAnalyticsDeploy.json --parameters location='East US' serviceTier='Standalone'
    

Bu şablon çalışma alanını oluşturur ve ayrıca pano tarafından kullanılan önceden tanımlanmış bir sorgu kümesi oluşturur.

Grafana'yı sanal makineye dağıtma

Grafana, Azure Log Analytics çalışma alanınız için Grafana eklentisini kullanarak zaman serisi ölçümlerini görselleştirmek için dağıtabilirsiniz Azure İzleyici. Grafana bir sanal makinede (VM) yürütülür ve bir depolama hesabı, sanal ağ ve diğer kaynaklar gerektirir. Bitnami sertifikalı Grafana görüntüsüne ve ilişkili kaynaklara sahip bir sanal makine dağıtmak için şu adımları izleyin:

  1. Grafana için görüntü koşullarını kabul Azure Market Azure CLI'yi kullanın.

    az vm image accept-terms --publisher bitnami --offer grafana --plan default
    
  2. Yerel GitHub /spark-monitoring/perftools/deployment/grafana dizinine gidin.

  3. grafanaDeploy.json Resource Manager aşağıdaki gibi dağıtın:

    export DATA_SOURCE="https://raw.githubusercontent.com/mspnp/spark-monitoring/master/perftools/deployment/grafana/AzureDataSource.sh"
    az group deployment create \
        --resource-group <resource-group-name> \
        --template-file grafanaDeploy.json \
        --parameters adminPass='<vm password>' dataSource=$DATA_SOURCE
    

Dağıtım tamamlandıktan sonra Grafana'nın bitnami görüntüsü sanal makineye yüklenir.

Grafana parolasını güncelleştirme

Kurulum işleminin bir parçası olarak, Grafana yükleme betiği yönetici kullanıcı için geçici bir parola çıkışı sağlar. Oturum açma için bu geçici parolaya ihtiyacınız var. Geçici parolayı almak için şu adımları izleyin:

  1. Azure portalında oturum açın.
  2. Kaynakların dağıtılacağı kaynak grubunu seçin.
  3. Grafana'nın yüklü olduğu VM'yi seçin. Dağıtım şablonunda varsayılan parametre adını kullandıysanız, VM adı sparkmonitoring-vm-grafana ile ortaya çıkar.
  4. Destek + sorun giderme bölümünde Önyükleme tanılama'ya tıklar ve önyükleme tanılama sayfasını açın.
  5. Önyükleme tanılama sayfasında Seri günlük'e tıklayın.
  6. Şu dizeyi ara: "Bitnami uygulama parolasını olarak ayarlama".
  7. Parolayı güvenli bir konuma kopyalayın.

Ardından, aşağıdaki adımları kullanarak Grafana yönetici parolasını girin:

  1. Sanal Azure portal VM'yi seçin ve Genel Bakış'a tıklayın.
  2. Genel IP adresini kopyalayın.
  3. Bir web tarayıcısı açın ve şu URL'ye gidin: http://<IP address>:3000 .
  4. Grafana oturum açma ekranında kullanıcı adı olarak yönetici girin ve önceki adımlarda yer alan Grafana parolasını kullanın.
  5. Oturum açtıktan sonra Yapılandırma(dişli simgesi) öğesini seçin.
  6. Sunucu Yöneticisi'ni seçin.
  7. Kullanıcılar sekmesinde yönetici oturum açma bilgilerini seçin.
  8. Parolayı güncelleştirin.

Veri Azure İzleyici oluşturma

  1. Grafana'nın Log Analytics çalışma alanınıza erişimi yönetmesi için izin veren bir hizmet sorumlusu oluşturun. Daha fazla bilgi için bkz. Azure CLI ile Azure hizmet sorumlusu oluşturma

    az ad sp create-for-rbac --name http://<service principal name> --role "Log Analytics Reader"
    
  2. Bu komutun çıktısına appId, password ve tenant değerlerini not edin:

    {
        "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "displayName": "azure-cli-2019-03-27-00-33-39",
        "name": "http://<service principal name>",
        "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    
  3. Daha önce açıklandığı gibi Grafana'da oturum açma. Yapılandırma (dişli simgesi) ve ardından Veri Kaynakları'ı seçin.

  4. Veri Kaynakları sekmesinde Veri kaynağı ekle'ye tıklayın.

  5. Veri Azure İzleyici olarak Veri Kaynağı'ı seçin.

  6. Ayarlar bölümünde, Ad metin kutusuna veri kaynağı için bir ad girin.

  7. Api Azure İzleyici bölümüne aşağıdaki bilgileri girin:

    • Abonelik Kimliği: Azure abonelik kimliğiniz.
    • Kiracı Kimliği: Önceki kiracı kimliği.
    • İstemci Kimliği: Önceki "appId" değeri.
    • İstemci Gizli Parolası: Önceki "parola" değeri.
  8. Azure Log Analytics API'si Ayrıntıları bölümünde, Api ile aynı Ayrıntılar Azure İzleyici onay kutusunu işaretleyin.

  9. Testi Kaydet'e tıklayın. Log Analytics veri kaynağı doğru yapılandırıldıysa bir başarı iletisi görüntülenir.

Panoyu oluşturma

Aşağıdaki adımları kullanarak Grafana'da panolar oluşturun:

  1. Yerel GitHub /perftools/dashboards/grafana dizinine gidin.

  2. Şu betiği çalıştırın:

    export WORKSPACE=<your Azure Log Analytics workspace ID>
    export LOGTYPE=SparkListenerEvent_CL
    
    sh DashGen.sh
    

    Betiğin çıktısı SparkMonitoringDash.json adlı bir dosyadır.

  3. Grafana panosuna geri dönüp Oluştur'a (artı simgesi) tıklayın.

  4. İçeri aktar'ı seçin.

  5. .json Upload'ye tıklayın.

  6. 2. adımda oluşturulan SparkMonitoringDash.json dosyasını seçin.

  7. Seçenekler bölümünde,ALA altında,daha önce Azure İzleyici veri kaynağını seçin.

  8. İçeri Aktar’a tıklayın.

Panolarda görselleştirmeler

Hem Azure Log Analytics hem de Grafana panoları bir dizi zaman serisi görselleştirme içerir. Her grafik bir iş, işin aşamaları ve her aşamayı Apache Spark ilgili ölçüm verileri zaman serisi çizimidir.

Görselleştirmeler:

İş gecikme süresi

Bu görselleştirme, bir işin genel performansıyla ilgili kaba bir görünüm olan bir işin yürütme gecikme süresini gösterir. Baştan tamamlamaya kadar olan iş yürütme süresini görüntüler. İş başlangıç zamanı ile iş gönderme zamanı aynı olmadığını unutmayın. Gecikme süresi, küme kimliği ve uygulama kimliğine göre dizinlenmiş iş yürütmenin yüzdebirlik değer (%10, %30, %50, %90) olarak temsil edilir.

Aşama gecikmesi

Görselleştirme, küme başına, uygulama başına ve tek tek aşama başına her aşamanın gecikme süresini gösterir. Bu görselleştirme, yavaş çalışan belirli bir aşamayı tanımlamak için kullanışlıdır.

Görev gecikme süresi

Bu görselleştirme, görev yürütme gecikmesini gösterir. Gecikme süresi küme, aşama adı ve uygulama başına görev yürütmenin yüzdebirlik kümesi olarak temsil edilen bir değerdir.

Konak başına Toplam Görev Yürütme

Bu görselleştirme, kümede çalışan konak başına görev yürütme gecikme süresinin toplamını gösterir. Konak başına görev yürütme gecikme süresini görüntülemek, genel görev gecikme süresi diğer konaklara göre çok daha yüksek olan konakları tanımlar. Bu, görevlerin verimsiz veya eşit olmayan bir şekilde konaklara dağıtılmış olduğu anlamına gelir.

Görev ölçümleri

Bu görselleştirme, belirli bir görevin yürütülmesi için bir dizi yürütme ölçümlerini gösterir. Bu ölçümler arasında veri karıştırmanın boyutu ve süresi, serileştirme ve serileştirmeyi geri getirme işlemlerinin süresi ve diğerleri yer almaktadır. Tam ölçüm kümesi için panel için Log Analytics sorgusunu görüntüleyebilirsiniz. Bu görselleştirme, bir görevi ve her bir işlemi kaynak tüketimini tanımlayan işlemleri anlamak için yararlıdır. Grafikteki ani artışlar, araştırılması gereken yüksek maliyetli işlemleri temsil ediyor.

Küme aktarım hızı

Bu görselleştirme, küme ve uygulama başına yapılan iş miktarını temsil etmek için küme ve uygulama tarafından dizinlenmiş iş öğelerinin üst düzey bir görünümü. Küme, uygulama ve aşama başına tamamlanan işlerin, görevlerin ve aşamaların sayısını bir dakikalık artışlarla gösterir.

Akış Aktarım Hızı/Gecikme Süresi

Bu görselleştirme, yapılandırılmış bir akış sorgusuyla ilişkili ölçümlerle ilişkilendirildi. Grafikte, saniye başına giriş satırı sayısı ve saniye başına işlenen satır sayısı gösterilir. Akış ölçümleri uygulama başına da temsil edilir. Yapılandırılmış akış sorgusu işlendikten sonra OnQueryProgress olayı üretilirken bu ölçümler gönderilir ve görselleştirme, sorgu toplu işlemini yürütmek için alınan süre (milisaniye cinsinden) olarak akış gecikmesini temsil eder.

Yürütücü başına kaynak tüketimi

Ardından pano için belirli bir kaynak türünü ve her kümede yürütücü başına nasıl tüketildiğine yönelik bir görselleştirme kümesi yer almaktadır. Bu görselleştirmeler yürütücü başına kaynak tüketiminde ortaya çıkarıları belirlemeye yardımcı olur. Örneğin, belirli bir yürütücü için iş ayırması çarpıtıldı ise, kaynak tüketimi kümede çalışan diğer yürütücülerle ilişkili olarak yükseltilen. Bu, yürütücü için kaynak tüketiminde ani artışlar ile belirlenebilirsiniz.

Yürütücü işlem süresi ölçümleri

Ardından, yürütücü seri hale getirme süresi, seri halinde serileştirme süresi, CPU süresi ve Java sanal makine süresi ile genel yürütücü işlem süresi oranının yer alan pano görselleştirmeleri yer almaktadır. Bu, bu dört ölçümün her biri için genel yürütücü işlemeye ne kadar katkıda olduğunu görsel olarak gösteriyor.

Karıştırma ölçümleri

Son görselleştirme kümesi, tüm yürütücüler genelinde yapılandırılmış bir akış sorgusuyla ilişkili veri karıştırma ölçümlerini gösterir. Bunlar arasında okunan karıştırma baytları, yazılan karıştırma baytları, karıştırma belleği ve dosya sisteminin bulunduğu sorgularda disk kullanımı yer almaktadır.

Sonraki adımlar