Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Analiza zadań to biblioteka diagnostyczna oparta na języku Java, która ułatwia interaktywną analizę ukończonych aplikacji Platformy Spark w usłudze Microsoft Fabric. Szczegółowe informacje o zadaniach umożliwiają uzyskanie dokładniejszego wglądu w zadania platformy Spark przez pobieranie ustrukturyzowanych danych wykonywania, takich jak zapytania, zadania, etapy, zadania i funkcje wykonawcze w notesach platformy Spark w usłudze Fabric przy użyciu języka Scala.
Niezależnie od tego, czy rozwiązujesz problemy z wydajnością, czy przeprowadzasz diagnostykę niestandardową, biblioteka szczegółowych informacji o zadaniach umożliwia pracę z telemetrią platformy Spark jako natywnymi zestawami danych platformy Spark, co ułatwia rozwiązywanie problemów z wydajnością i eksplorowanie szczegółowych informacji o wykonywaniu.
Uwaga / Notatka
Uzyskiwanie dostępu do biblioteki szczegółowych informacji o zadaniu przy użyciu narzędzia PySpark nie jest jeszcze obsługiwane.
Wymagania wstępne
Obsługiwany jest tylko język Scala.
Wymaga środowiska uruchomieniowego sieci szkieletowej w wersji 1.3 lub nowszej (z platformą Spark 3.5 lub nowszą).
Narzędzie PySpark nie obsługuje dostępu do biblioteki szczegółowych informacji o zadaniach.
Kluczowe możliwości
Interaktywna analiza zadań platformy Spark: uzyskiwanie dostępu do metryk wykonywania platformy Spark, w tym szczegółów zadania, etapu i funkcji wykonawczej.
Utrwalone metryki wykonywania: zapisz metryki wykonywania zadań platformy Spark w tabelach lakehouse na potrzeby raportowania i integracji.
Kopiowanie dziennika zdarzeń platformy Spark: eksportowanie dzienników zdarzeń do usługi OneLake lub Azure Data Storage.
Przykładowy notes
Aby rozpocząć pracę, możesz użyć dostarczonego przykładowego notesu (przykładowego pliku ipynb). Notes zawiera następujące elementy:
- Przykład
analyze()iloadJobInsight()kod - Wyświetlanie poleceń (na przykład
queries.show()) - Przykłady kopiowania dziennika zdarzeń.
Wprowadzenie
1. Analizowanie ukończonego zadania platformy Spark
Wyodrębnianie danych wykonywania strukturalnego z ukończonego zadania platformy Spark za pomocą interfejsu analyze API:
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. Zapisywanie metryk i dzienników w lakehouse
Zapisz dane wyjściowe analizy w tabelach lakehouse na potrzeby raportowania lub integracji:
val df = jobInsight.queries
df.write
.format("delta")
.mode("overwrite")
.saveAsTable("sparkdiagnostic_lh.Queries")
Zastosuj tę samą logikę do innych składników, takich jak zadania, etapy lub funkcje wykonawcze.
3. Załaduj ponownie poprzednią analizę
Jeśli już uruchomiono analizę i zapisano dane wyjściowe, załaduj je ponownie bez powtarzania procesu:
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. Kopiowanie dzienników zdarzeń platformy Spark
Skopiuj dzienniki zdarzeń platformy Spark do lokalizacji usługi ABFSS (np. OneLake lub Azure Data Lake Storage (ADLS) Gen2 przy użyciu tego interfejsu API:
import com.microsoft.jobinsight.diagnostic.LogUtils
val contentLength = LogUtils.copyEventLog(
$workspaceId,
$artifactId,
$livyId,
$jobType,
$targetDirectory,
$asyncMode,
$attemptId
)
Najlepsze rozwiązania
Upewnij się, że masz odpowiednie uprawnienia do odczytu/zapisu dla wszystkich ścieżek ABFSS.
Zapisz
analyze()dane wyjściowe w trwałej lokalizacji w celu ponownego użycia.Użyj
asyncMode = truepolecenia podczas kopiowania dzienników dla dużych zadań, aby zmniejszyć opóźnienie.Monitorowanie rozmiaru i struktury dziennika zdarzeń w celu uniknięcia problemów z deserializacji.
Rozwiązywanie problemów
| Problematyka | Rezolucja |
|---|---|
| Odmowa dostępu do zapisu | Sprawdź uprawnienia do zapisu dla docelowego katalogu ABFSS. |
| stateStorePath już istnieje | Użyj nowej ścieżki, która jeszcze nie istnieje dla każdego wywołania do analizy(). |