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
Azure portalından Spark kümesini açın. Daha fazla bilgi için bkz . Kümeleri listeleme ve gösterme.
Küme panolarından Spark geçmiş sunucusu'nu seçin. İstendiğinde Spark kümesi için yönetici kimlik bilgilerini girin.
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/sparkhistory
Spark 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:
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.
Kopyala düğmesini seçerek tüm satırları kopyalayın .
Tüm verileri olarak kaydedin. csv düğmesini seçerek CSV dosyası.
Arama alanına anahtar sözcükler girerek verilerde arama yapın. Arama sonuçları hemen görüntülenir.
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.
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.
İ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.
Tek bir sayfada görüntülenemeyecek kadar çok satır varsa, tablonun alt kısmındaki sayfa numaralarını seçerek gezinebilirsiniz.
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.
Sorunlarla ilgili geri bildirim göndermek için Bize geri bildirim sağla'yı seçin.
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.
İlerleme varsayılan olarak seçilidir. Görüntü açılan menüsünde Okuma veya Yazma'ya tıklayarak veri akışını denetleyin.
Her görevin arka plan rengi bir ısı haritasına karşılık gelir.
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. Atlanan aşamalar beyaz olarak görüntülenir.
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.
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.
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.
İş 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.
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.
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.
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.
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.
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.
Tüm taslaklarda ilgili içeriği seçmek veya seçimini kaldırmak için renk simgesini seçin.
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.
Kümeyi Ambari'de açın.
Spark2>Yapılandırmaları'na gidin.
Özel spark2-defaults'ı seçin.
Özellik Ekle .... öğesini seçin.
spark.ui.enhancement.enabled=false ekleyin ve kaydedin.
Özelliği şimdi false olarak ayarlanır.
Yapılandırmayı kaydetmek için Kaydet'i seçin.
Sol panelde Spark2'yi seçin. Ardından Özet sekmesinde Spark2 Geçmiş Sunucusu'nu seçin.
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.
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.
Spark Geçmiş Sunucusu web kullanıcı arabiriminde İndir'i seçerek olayı indirin.
Spark Uygulaması ve İş Grafı sayfasından Bize geri bildirim sağlayın'ı seçin.
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.
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
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
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