Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İş içgörüleri, Microsoft Fabric'te tamamlanmış Spark uygulamalarını etkileşimli olarak çözümlemenize yardımcı olmak için tasarlanmış Java tabanlı bir tanılama kitaplığıdır. İş içgörüleri, Scala kullanarak Doku Spark not defterlerinizdeki sorgular, işler, aşamalar, görevler ve yürütücüler gibi yapılandırılmış yürütme verilerini alarak Spark işleri hakkında daha derin içgörüler elde etmenizi sağlar.
performans sorunlarını giderirken veya özel tanılamalar yürütürken, İş içgörü kitaplığı Spark telemetrisiyle yerel Spark Veri Kümeleri olarak çalışmanıza olanak sağlayarak performans sorunlarını gidermeyi ve yürütme içgörülerini keşfetmeyi kolaylaştırır.
Uyarı
PySpark kullanarak İş içgörü kitaplığına erişim henüz desteklenmiyor.
Önkoşullar
Yalnızca Scala desteklenir.
Fabric Çalışma Zamanı 1.3 veya daha yenisini gerektirir (Spark 3.5+ ile).
PySpark, İş İçgörüleri kitaplığına erişimi desteklemez.
Uyarı
Başka bir Spark uygulamasını analiz etmek için JobInsight kitaplığını kullanırken, JobInsight'i çalıştıran defterin, hedef Spark uygulamasıyla aynı Doku kapasitesinde olması gerekir.
Kapasiteler arası senaryolar şu anda desteklenmemektedir.
Önemli özellikler
Etkileşimli Spark iş analizi: İş, aşama ve yürütücü ayrıntıları da dahil olmak üzere Spark yürütme ölçümlerine erişin.
Yürütme ölçümlerini kalıcı hale getirin: Spark iş yürütme ölçümlerini raporlama ve tümleştirme için lakehouse tablolarına kaydedin.
Spark olay günlüğü kopyası: Olay günlüklerini OneLake'e veya Azure Veri Depolama'ya aktarın.
Örnek not defteri
Başlamak için sağlanan örnek not defterini (örnek ipynb dosyası) kullanabilirsiniz. Not defteri şunları içerir:
- Örnek
analyze()veloadJobInsight()kod - Görüntüleme komutları (örneğin,
queries.show()) - Olay günlüğü kopyalama örnekleri.
Başlangıç Yapmak
1. Tamamlanmış bir Spark işini analiz etme
API ile tamamlanmış bir Spark işinden yapılandırılmış yürütme verilerini ayıklayın analyze :
import com.microsoft.jobinsight.diagnostic.SparkDiagnostic
val jobInsight = SparkDiagnostic.analyze(
$workspaceId,
$artifactId,
$livyId,
$jobType,
$stateStorePath,
$attemptId
)
val queries = jobInsight.queries
val jobs = jobInsight.jobs
val stages = jobInsight.stages
val tasks = jobInsight.tasks
val executors = jobInsight.executors
2. Ölçümleri ve günlükleri bir göle kaydetme
Raporlama veya tümleştirme için analiz çıkışını lakehouse tablolarına kaydedin:
val df = jobInsight.queries
df.write
.format("delta")
.mode("overwrite")
.saveAsTable("sparkdiagnostic_lh.Queries")
aynı mantığı işler, aşamalar veya yürütücüler gibi diğer bileşenlere de uygulayın.
3. Önceki analizi yeniden yükleme
Zaten bir çözümleme çalıştırdıysanız ve çıkışı kaydettiyseniz işlemi tekrarlamadan yeniden yükleyin:
import com.microsoft.jobinsight.diagnostic.SparkDiagnostic
val jobInsight = SparkDiagnostic.loadJobInsight(
$stateStorePath
)
val queries = jobInsight.queries
val jobs = jobInsight.jobs
val stages = jobInsight.stages
val tasks = jobInsight.tasks
val executors = jobInsight.executors
4. Spark olay günlüklerini kopyalama
Spark olay günlüklerini şu API ile bir ABFSS konumuna (OneLake veya Azure Data Lake Storage (ADLS) 2. Nesil gibi) kopyalayın:
import com.microsoft.jobinsight.diagnostic.LogUtils
val contentLength = LogUtils.copyEventLog(
$workspaceId,
$artifactId,
$livyId,
$jobType,
$targetDirectory,
$asyncMode,
$attemptId
)
En iyi yöntemler
Tüm ABFSS yolları için doğru okuma/yazma izinlerine sahip olduğunuzdan emin olun.
analyze()çıktıları yeniden kullanmak üzere dayanıklı bir konuma kaydedin.Gecikme süresini azaltmak için büyük işlerin günlüklerini kopyalarken kullanın
asyncMode = true.Seri durumdan çıkarma sorunlarını önlemek için olay günlüğü boyutunu ve yapısını izleme.
Sorun giderme
| Sorun | Çözüm |
|---|---|
| Yazma erişimi reddedildi | Hedef ABFSS dizini için yazma izinlerini denetleyin. |
| stateStorePath zaten var | Analyze() çağrısı için henüz mevcut olmayan yeni bir yol kullanın. |