Aracılığıyla paylaş


Spark uygulamalarında hata ayıklamak ve tanılamak için Apache Spark Geçmiş Sunucusu'nun genişletilmiş özelliklerini kullanma

Bu makalede, tamamlanan veya çalışan Spark uygulamalarında hata ayıklamak ve tanılamak için Apache Spark Geçmiş Sunucusu'nun genişletilmiş özelliklerinin nasıl kullanılacağı gösterilmektedir. Uzantıda Veri sekmesi, Grafik sekmesi ve Tanılama sekmesi bulunur. Veri sekmesinde Spark işinin giriş ve çıkış verilerini de kontrol edebilirsiniz. Graf sekmesinde veri akışını denetleyebilir ve iş grafını yeniden yürütebilirsiniz. Tanılama sekmesinde Veri Dengesizliği, Zaman Dengesizliği ve Yürütücü Kullanım Analizi özelliklerine başvurabilirsiniz.

Spark Geçmiş Sunucusu'na erişim elde etme

Spark Geçmiş Sunucusu, tamamlanan ve çalışan Spark uygulamalarının web kullanıcı arabirimidir. Bunu Azure portalından veya BIR URL'den açabilirsiniz.

Azure portalından Spark Geçmiş Sunucusu web kullanıcı arabirimini açma

  1. Azure portalından Spark kümesini açın. Daha fazla bilgi için bkz . Kümeleri listeleme ve gösterme.

  2. Küme panolarından Spark geçmiş sunucusu'nu seçin. İstendiğinde Spark kümesi için yönetici kimlik bilgilerini girin.

    Launch the Spark History Server from the Azure portal. Azure portalı." border="true":::

SPARK Geçmiş Sunucusu web kullanıcı arabirimini URL'ye göre açma

Adresine göz atarak https://CLUSTERNAME.azurehdinsight.net/sparkhistorySpark Geçmiş Sunucusu'nu açın; burada CLUSTERNAME , Spark kümenizin adıdır.

Spark Geçmiş Sunucusu web kullanıcı arabirimi şu görüntüye benzer olabilir:

The Spark History Server page.

Spark Geçmiş Sunucusu'nda Veri sekmesini kullanma

veri görünümünü görmek için iş kimliğini seçin ve ardından araç menüsünden Veri'yi seçin.

  • Tek tek sekmeleri seçerek Girişler, Çıkışlar ve Tablo İşlemleri'ni gözden geçirin.

    Data tabs on the Data for Spark Application page.

  • Kopyala düğmesini seçerek tüm satırları kopyalayın .

    Copy data on the Spark application page.

  • Tüm verileri olarak kaydedin. csv düğmesini seçerek CSV dosyası.

    Save data as a .CSV file from the Data for Spark Application page.

  • Arama alanına anahtar sözcükler girerek verilerde arama yapın. Arama sonuçları hemen görüntülenir.

    Search data on the Data for Spark Application page.

  • Tabloyu sıralamak için sütun başlığını seçin. Daha fazla ayrıntı göstermek üzere bir satırı genişletmek için artı işaretini seçin. Satırı daraltmak için eksi işaretini seçin.

    The data table on the Data for Spark Application page.

  • Sağdaki Kısmi İndirme düğmesini seçerek tek bir dosya indirin. Seçili dosya yerel olarak indirilir. Dosya artık yoksa, hata iletilerini göstermek için yeni bir sekme açılır.

    The data download row on the Data for Spark Application page.

  • İndirme menüsünden genişletilen Tam Yolu Kopyala veya Göreli Yolu Kopyala seçeneğini belirleyerek tam yolu veya göreli yolu kopyalayın. Azure Data Lake Depolama dosyaları için Azure Depolama Gezgini başlatmak ve oturum açtıktan sonra klasörü bulmak için Azure Depolama Gezgini aç'ı seçin.

    Copy Full Path and Copy Relative Path options on the Data for Spark Application page.

  • Tek bir sayfada görüntülenemeyecek kadar çok satır varsa, tablonun alt kısmındaki sayfa numaralarını seçerek gezinebilirsiniz.

    Page numbers on the Data for Spark Application page.

  • Daha fazla bilgi için spark uygulaması için veri'nin yanındaki soru işaretinin üzerine gelin veya soru işaretini seçerek araç ipucunun gösterilmesini sağlayın.

    Get more information from the Data for Spark Application page.

  • Sorunlarla ilgili geri bildirim göndermek için Bize geri bildirim sağla'yı seçin.

    Provide feedback from the Data for Spark Application page.

Spark Geçmiş Sunucusu'nda Graf sekmesini kullanma

  • İş kimliğini seçin ve ardından iş grafiğini görmek için araç menüsünden Graf'ı seçin. Varsayılan olarak, grafik tüm işleri gösterir. İş Kimliği açılan menüsünü kullanarak sonuçları filtreleyin.

    The Job ID drop-down menu on the Spark Application & Job Graph page.

  • İlerleme varsayılan olarak seçilidir. Görüntü açılan menüsünde Okuma veya Yazma'ya tıklayarak veri akışını denetleyin.

    Check the data flow on the Spark Application & Job Graph page.

  • Her görevin arka plan rengi bir ısı haritasına karşılık gelir.

    The heat map on the Spark Application & Job Graph page.

    Color Açıklama
    Yeşil İş başarıyla tamamlandı.
    Orange Görev başarısız oldu, ancak bu işin nihai sonucunu etkilemez. Bu görevlerin daha sonra başarılı olabilecek yinelenen veya yeniden deneme örnekleri vardır.
    Mavi Görev çalışıyor.
    Beyaz Görev çalışmak için bekliyor veya aşama atlandı.
    Kırmızı Görev başarısız oldu.

    Running a task on the Spark Application & Job Graph page.

    Atlanan aşamalar beyaz olarak görüntülenir. A skipped task on the Spark Application & Job Graph page.

    A failed task on the Spark Application & Job Graph page.

    Not

    Tamamlanan işler için kayıttan yürütme kullanılabilir. İşi geri oynatmak için Kayıttan Yürüt düğmesini seçin. Durdur düğmesini seçerek işi istediğiniz zaman durdurun. Bir iş oynatıldığında, her görev durumunu renge göre görüntüler. Eksik işler için kayıttan yürütme desteklenmez.

  • İş grafiğini yakınlaştırmak veya uzaklaştırmak için ekranı kaydırın veya ekrana sığdırmak için Sığdırmak için Yakınlaştır'ı seçin.

    Select Zoom to fit on the Spark Application & Job Graph page.

  • Görevler başarısız olduğunda, araç ipucuna bakmak için grafik düğümünü üzerine gelin ve ardından aşamayı seçerek yeni bir sayfada açın.

    View the tooltip on the Spark Application & Job Graph page.

  • Spark Uygulaması ve İş Grafı sayfasında, görevler şu koşulları karşılıyorsa aşamalar araç ipuçlarını ve küçük simgeleri görüntüler:

    • Veri dengesizliği: Veri okuma boyutu > ortalama bu aşamadaki tüm görevlerin okuma boyutu * 2 ve veri okuma boyutu > 10 MB.

    • Zaman dengesizliği: Bu aşamadaki tüm görevlerin yürütme süresi > ortalama yürütme süresi * 2 ve yürütme süresi > 2 dakika.

      The skewed task icon on the Spark Application & Job Graph page.

  • İş grafı düğümü her aşama hakkında aşağıdaki bilgileri görüntüler:

    • Kimlik

    • Ad veya açıklama

    • Toplam görev numarası

    • Veri okuma: Giriş boyutunun toplamı ve okuma boyutunu karıştırma

    • Veri yazma: Çıkış boyutunun toplamı ve yazma boyutunu karıştırma

    • Yürütme süresi: İlk denemenin başlangıç saati ile son denemenin tamamlanma zamanı arasındaki süre

    • Satır sayısı: Giriş kayıtlarının, çıkış kayıtlarının, okuma kayıtlarını karıştırmanın ve yazma kayıtlarını karıştırmanın toplamı

    • İlerleme Durumu

      Not

      Varsayılan olarak, iş grafiği düğümü her aşamanın son denemesine ait bilgileri görüntüler (aşama yürütme süresi hariç). Ancak kayıttan yürütme sırasında iş grafı düğümü her deneme hakkında bilgi gösterir.

      Not

      Veri okuma ve veri yazma boyutları için 1 MB = 1000 KB = 1000 * 1000 bayt kullanırız.

  • Bize geri bildirim sağlayın'ı seçerek sorunlar hakkında geri bildirim gönderin.

    The feedback option on the Spark Application & Job Graph page.

Spark Geçmişi Sunucusu'nda Tanılama sekmesini kullanma

İş kimliğini seçin ve ardından iş tanılama görünümünü görmek için araç menüsünde Tanılama'yı seçin. Tanılama sekmesi Veri Dengesizliği, Zaman Dengesizliği ve Yürütücü Kullanım Analizi'ni içerir.

  • Sekmeleri sırasıyla seçerek Veri Dengesizliği, Zaman Dengesizliği ve Yürütücü Kullanım Analizi'ni gözden geçirin.

    The Data Skew tab within the Diagnosis tab.

Veri Dengesizliği

Veri Dengesizliği sekmesini seçin. Karşılık gelen çarpık görevler, belirtilen parametrelere göre görüntülenir.

Parametreleri Belirtme

Parametreleri Belirt bölümünde, Veri Dengesizliği algılamak için kullanılan parametreler görüntülenir. Varsayılan kural şudur: Okunan görev verileri ortalama görev verilerinin üç katı kadardır ve okunan görev verileri 10 MB'tan fazladır. Dengesiz görevler için kendi kuralınızı tanımlamak istiyorsanız, parametrelerinizi seçebilirsiniz. Çarpık Aşama ve Eğriltme Grafiği bölümleri buna uygun olarak güncelleştirilir.

Çarpık Aşama

Çarpık Aşama bölümünde, belirtilen ölçütlere uyan çarpık görevler içeren aşamalar görüntülenir. Bir aşamada birden fazla çarpık görev varsa, Çarpık Aşama bölümü yalnızca en dengesiz görevi (veri dengesizliği için en büyük veri) görüntüler.

Larger view of the Data Skew tab within the Diagnosis tab.

Eğriltme Grafiği

Eğriltme Aşaması tablosunda bir satır seçtiğinizde, Eğriltme Grafiği veri okuma ve yürütme süresine göre daha fazla görev dağıtımı ayrıntısı görüntüler. Eğilmiş görevler kırmızı ve normal görevler mavi olarak işaretlenir. Performans konusunda dikkat edilmesi gerekenler için grafikte en fazla 100 örnek görev görüntülenir. Görev ayrıntıları sağ alt panelde görüntülenir.

The Skew Chart for Stage 10 in the Spark UI.

Zaman Dengesizliği

Zaman Dengesizliği sekmesi, görev yürütme süresine göre dengesiz görevleri görüntüler.

Parametreleri Belirtme

Parametreleri Belirt bölümünde, zaman dengesizliklerini algılamak için kullanılan parametreler görüntülenir. Varsayılan kural: Görev yürütme süresi ortalama yürütme süresinin üç katı, görev yürütme süresi ise 30 saniyeden uzundur. Parametreleri gereksinimlerinize göre değiştirebilirsiniz. Çarpık Aşama ve Eğriltme Grafiği, veri dengesizliği sekmesinde olduğu gibi ilgili aşamaları ve görev bilgilerini görüntüler.

Zaman Dengesizliği'ni seçtiğinizde filtrelenen sonuç, Parametreleri Belirtin bölümünde ayarlanan parametrelere göre Çarpık Aşama bölümünde görüntülenir. Eğilmiş Aşama bölümünde bir öğe seçtiğinizde, ilgili grafik üçüncü bölümde taslağı oluşturulur ve görev ayrıntıları sağ alt panelde görüntülenir.

The Time skew tab within the Diagnosis tab.

Yürütücü Kullanım Analizi grafikleri

Yürütücü Kullanım Grafiği işin gerçek yürütücü ayırma ve çalıştırma durumunu görüntüler.

Yürütücü Kullanım Analizi'ne seçtiğinizde yürütücü kullanımıyla ilgili dört farklı eğri taslağı oluşturulur: Ayrılmış Yürütücüler, Çalışan Yürütücüler, boşta Yürütücüler ve En Fazla Yürütücü Örnekleri. Eklenen veya Yürütücü kaldırılan her Yürütücü olayı, ayrılan yürütücüleri artırır veya azaltır. Daha fazla karşılaştırma için İşler sekmesinde Olay Zaman Çizelgesi'ni de kontrol edebilirsiniz.

The Executor Usage Analysis tab within the Diagnosis tab.

Tüm taslaklarda ilgili içeriği seçmek veya seçimini kaldırmak için renk simgesini seçin.

Select the chart in the Executor Usage Analysis tab.

SSS

Topluluk sürümüne geri Nasıl yaparım??

Topluluk sürümüne geri dönmek için aşağıdaki adımları uygulayın.

  1. Kümeyi Ambari'de açın.

  2. Spark2>Yapılandırmaları'na gidin.

  3. Özel spark2-defaults'ı seçin.

  4. Özellik Ekle .... öğesini seçin.

  5. spark.ui.enhancement.enabled=false ekleyin ve kaydedin.

  6. Özelliği şimdi false olarak ayarlanır.

  7. Yapılandırmayı kaydetmek için Kaydet'i seçin.

    Turn off a feature in Apache Ambari.

  8. Sol panelde Spark2'yi seçin. Ardından Özet sekmesinde Spark2 Geçmiş Sunucusu'nu seçin.

    The summary view in Apache Ambari.

  9. Spark Geçmiş Sunucusu'nu yeniden başlatmak için Spark2 Geçmiş Sunucusu'nun sağ tarafındaki Başlatıldı düğmesini seçin ve ardından açılan menüden Yeniden Başlat'ı seçin.

    Restart the Spark History Server in Apache Ambari.

  10. Spark Geçmiş Sunucusu web kullanıcı arabirimini yenileyin. Topluluk sürümüne geri döner.

Spark Geçmiş Sunucusu olayını sorun olarak bildirmek için Nasıl yaparım? karşıya yükleyebilirsiniz?

Spark Geçmiş Sunucusu'nda bir hatayla karşılaşırsanız, olayı bildirmek için aşağıdaki adımları uygulayın.

  1. Spark Geçmiş Sunucusu web kullanıcı arabiriminde İndir'i seçerek olayı indirin.

    Download the event in the Spark History Server UI.

  2. Spark Uygulaması ve İş Grafı sayfasından Bize geri bildirim sağlayın'ı seçin.

    Provide feedback on the Spark Application & Job Graph page.

  3. Hatanın başlığını ve açıklamasını belirtin. Ardından, .zip dosyasını düzenleme alanına sürükleyin ve Yeni sorun gönder'i seçin.

    Upload and submit a new issue.

Düzeltme senaryosunda bir .jar dosyasını Nasıl yaparım? yükseltin?

Bir düzeltmeyle yükseltmek istiyorsanız, aşağıdaki betiği kullanın. Bu betik yükseltilecektir spark-enhancement.jar*.

upgrade_spark_enhancement.sh:

 #!/usr/bin/env bash

 # Copyright (C) Microsoft Corporation. All rights reserved.

 # Arguments:
 # $1 Enhancement jar path

 if [ "$#" -ne 1 ]; then
     >&2 echo "Please provide the upgrade jar path."
     exit 1
 fi

 install_jar() {
     tmp_jar_path="/tmp/spark-enhancement-hotfix-$( date +%s )"

     if wget -O "$tmp_jar_path" "$2"; then
         for FILE in "$1"/spark-enhancement*.jar
         do
             back_up_path="$FILE.original.$( date +%s )"
             echo "Back up $FILE to $back_up_path"
             mv "$FILE" "$back_up_path"
             echo "Copy the hotfix jar file from $tmp_jar_path   to $FILE"
             cp "$tmp_jar_path" "$FILE"

             "Hotfix done."
             break
         done
     else    
         >&2 echo "Download jar file failed."
         exit 1
     fi
 }

 jars_folder="/usr/hdp/current/spark2-client/jars"
 jar_path=$1

 if ls ${jars_folder}/spark-enhancement*.jar 1>/dev/null 2>&1;   then
     install_jar "$jars_folder" "$jar_path"
 else
     >&2 echo "There is no target jar on this node. Exit with no action."
     exit 0
 fi

Kullanım

upgrade_spark_enhancement.sh https://${jar_path}

Örnek

upgrade_spark_enhancement.sh https://${account_name}.blob.core.windows.net/packages/jars/spark-enhancement-${version}.jar

Azure portalından bash dosyasını kullanma

  1. Azure portalını başlatın ve kümenizi seçin.

  2. Aşağıdaki parametrelerle bir betik eylemini tamamlayın.

    Özellik Değer
    Betik türü -Özel
    Veri Akışı Adı UpgradeJar
    Bash betik URI'si https://hdinsighttoolingstorage.blob.core.windows.net/shsscriptactions/upgrade_spark_enhancement.sh
    Düğüm türleri Baş, Çalışan
    Parametreler https://${account_name}.blob.core.windows.net/packages/jars/spark-enhancement-${version}.jar

    Azure portal submit script action.

Bilinen sorunlar

  • Şu anda Spark Geçmiş Sunucusu yalnızca Spark 2.3 ve 2.4 için çalışır.

  • RDD kullanan giriş ve çıkış verileri Veri sekmesinde görüntülenmez.

Sonraki adımlar

Öneriler

Bu aracı kullanırken geri bildiriminiz varsa veya herhangi bir sorunla karşılaşırsanız adresine bir e-posta gönderin.hdivstool@microsoft.com