Brug den udvidede Apache Spark-oversigtsserver til at foretage fejlfinding og diagnosticere Apache Spark-programmer

Denne artikel indeholder en vejledning i, hvordan du bruger den udvidede Apache Spark-oversigtsserver til at foretage fejlfinding og diagnosticere fuldførte og kørende Apache Spark-programmer.

Få adgang til Apache Spark-oversigtsserveren

Apache Spark-oversigtsserveren er webbrugergrænsefladen til fuldførte og kørende Spark-programmer. Du kan åbne Apache Spark-brugergrænsefladen (UI) fra statusindikatornotesbogen eller siden med oplysninger om Apache Spark-programmet.

Åbn brugergrænsefladen i Spark-web fra notesbogen med statusindikator

Når et Apache Spark-job udløses, er knappen til at åbne Spark-webbrugergrænseflade inde i indstillingen Mere handling i statusindikatoren. Vælg Spark-webbrugergrænseflade , og vent et par sekunder, hvorefter siden med Spark-brugergrænsefladen vises.

Skærmbillede, der viser åbn brugergrænsefladen på Spark-webstedet fra notesbogen med statusindikator.

Åbn spark-webbrugergrænsefladen fra siden med oplysninger om Apache Spark-programmet

Brugergrænsefladen i Spark-web kan også åbnes via siden med oplysninger om Apache Spark-programmet. Vælg Overvåg til venstre på siden, og vælg derefter et Apache Spark-program. Detaljesiden for programmet vises.

Skærmbillede, der viser siden med oplysninger om spark-webbrugergrænsefladen fra siden med programdetaljer i Apache Spark.

For et Apache Spark-program, hvis status kører, viser knappen Spark-brugergrænsefladen. Vælg Spark UI , hvorefter siden med Brugergrænsefladen i Spark vises.

Skærmbillede, der viser knappen viser spark-brugergrænsefladen i kørselstilstand.

For et Apache Spark-program, hvis status er afsluttet, kan statussen stoppes, mislykkes, annulleres eller fuldføres. Knappen viser Spark-oversigtsserveren. Vælg Spark-oversigtsserver , hvorefter siden med Brugergrænsefladen i Spark vises.

Skærmbillede, der viser knappen viser spark-brugergrænsefladen i sluttilstanden.

Snapshot-Based Indlæsning af store hændelseslogfiler

En ny snapshot-baseret indlæsningsmetode er blevet introduceret til Spark History Server, optimeret til store hændelseslogscenarier.

Med denne forbedring afslører Spark-brugerfladen gradvist tilgængelige data i stedet for at vente på, at hele genafspilningen er færdig. Når begivenhedsloggens størrelse er 6 GB eller større, vises en indlæsningsmeddelelse, der indikerer, at der kan være behov for yderligere indlæsningstid (typisk et par minutter).

Så snart et delvist snapshot er tilgængeligt, gengives brugerfladen med de data. En beskedbjælke øverst angiver, at data stadig behandles i baggrunden. Når hele genafspilningen er færdig, fjernes beskedlinjen automatisk, og hele visningen vises.

Med denne erfaring kan du:

  • Se en klar indlæsningsmeddelelse for store hændelseslogfiler (≥ 6 GB), så du ved, at systemet aktivt behandler det i stedet for ikke reagerer ikke.
  • Gennemse et delvist snapshot tidligt gennem et tydeligt markeret preview-banner, så du kan undersøge jobs og baner uden at vente på hele genafspilningen
  • Opdater siden senere for at indlæse hele datasættet, når behandlingen er færdig

Når Spark History-dataene er fuldt indlæst, forsvinder den delvise indlæsningsbeskedlinje, og den fulde oplevelse er tilgængelig.

Skærmbilledet, der viser knappen, viser snapshot-baseret indlæsning for store hændelseslogfiler.

Udforsk Apache Spark History Server

Apache Spark History Server leverer en webbaseret brugergrænseflade (UI), der rekonstruerer Spark-applikationseksekveringsdetaljer ud fra hændelseslogfiler. Det gør det muligt for brugere at analysere færdige eller kørende applikationer ud over deres runtime-livscyklus.

History Server UI består af flere faner, som hver tilbyder et forskelligt perspektiv på at forstå applikationsadfærd, ydeevne og ressourceudnyttelse.

Fanen Job

Job-fanen giver et overordnet overblik over alle jobs i en Spark-applikation.

Du kan bruge denne visning til at:

  • Overvåg jobstatus (kørende, succesfuldt eller mislykket)
  • Sammenlign jobvarigheder
  • Identificer hurtigt mislykkede eller langsomt kørende job

Fanen Stages

Fanen Stages viser detaljeret udførelsesinformation for hver fase.

Du kan bruge denne visning til at:

  • Analyser præstation på stage-niveau
  • Gennemgå opgavefordeling og omrokeringsmålinger
  • Identificer flaskehalse såsom skæve data eller dyre operationer

Skærmbillede viser stage-fanen.

Grænse for fasenummer

Af hensyn til ydeevnen er grafen som standard kun tilgængelig, når Spark-programmet har færre end 500 faser. Hvis der er for mange faser, mislykkes det med en fejl som denne:

The number of stages in this application exceeds limit (500), graph page is disabled in this case.

Før du starter et Spark-program, skal du anvende denne Spark-konfiguration for at øge grænsen:

spark.ui.enhancement.maxGraphStages 1000

Men bemærk, at dette kan medføre dårlig ydeevne for siden og API'en, fordi indholdet kan være for stort til, at browseren kan hente og gengive.

Lagerfanen

Fanen Lagring viser information om cachede data.

Du kan bruge denne visning til at:

  • Forstå hukommelses- og diskforbrug for cachede datasæt
  • Bekræft om caching er effektivt

Miljøfanen

Fanen Miljø viser runtime-konfiguration og miljødetaljer.

Du kan bruge denne visning til at:

  • Inspektér Spark-konfigurationsindstillinger
  • Verificér miljøvariabler og afhængigheder
  • Fejlfinding af konfigurationsrelaterede problemer

Fanen Eksekutorer

Fanen Eksekutører viser ressourceudnyttelse på tværs af eksekutorer.

Du kan bruge denne visning til at:

  • Overvåg CPU- og hukommelsesforbrug
  • Analyser opgavefordeling på tværs af udførere
  • Identificer eksekutorfejl eller ubalancer

Graffane

Graffanen visualiserer udførelsen af et Spark-job som en rettet acyklisk graf (DAG), der repræsenterer relationerne mellem stadier.

Du kan bruge denne visning til at:

  • Forstå, hvordan et job er opdelt i stadier og deres afhængigheder
  • Identificer kritiske veje, der bestemmer den samlede jobvarighed
  • Detekter fejlede eller genprøvede faser
  • Afspil jobudførelsen igen for at se, hvordan opgaverne udvikler sig over tid

Denne fane er særligt nyttig til at forstå eksekveringsflowet og identificere højniveau-ydelsesflaskehalse.

Skærmbillede viser graf.

Diagnosefanen

Diagnosefanen giver avancerede analysemuligheder, herunder:

  • Dataforskydningsdetektion
  • Tidsforskydningsanalyse
  • Besøgsanalyse af eksekvering

Kontrollér dataforvrængelse, tidsforvrængelse og analyse af eksekveringsanvendelse ved at vælge fanerne.

Skærmbillede, der viser fanen Forvrængede diagnosticeringsdata for sparkUI igen.

Denne fane hjælper med at identificere performance-flaskehalse og ineffektivitet i jobudførelsen.

Dataforvrænget

Når du vælger fanen Dataforvrænge , vises de tilsvarende skæve opgaver baseret på de angivne parametre.

  • Angiv parametre – I det første afsnit vises parametrene, som bruges til at registrere dataforvrænget. Standardreglen er: Læsning af opgavedata er større end tre gange den gennemsnitlige læsning af opgavedata, og opgavedataene er mere end 10 MB. Hvis du vil definere din egen regel for skæve opgaver, kan du vælge dine parametre. Sektionerne Skæv fase og Skævt tegn opdateres tilsvarende.

  • Skæv fase – I det andet afsnit vises faser, som har skæve opgaver, der opfylder de tidligere angivne kriterier. Hvis der er mere end én skæv opgave i en fase, viser tabellen med skæve faser kun den mest skæve opgave (f.eks. de største data for dataforvrænget).

    Skærmbillede, der viser fanen Forvrængede diagnosticeringsdata for brugergrænsefladen.

  • Skævt diagram – Når der vælges en række i tabellen med skæve faser, viser skævt diagrammet flere oplysninger om opgavefordeling baseret på datalæsnings- og udførelsestid. De skæve opgaver er markeret med rødt, og de normale opgaver er markeret med blåt. Diagrammet viser op til 100 eksempelopgaver, og opgavedetaljerne vises i højre nederste panel.

    Skærmbillede, der viser et diagram med skråtstillet spark-brugergrænseflade for fase 10.

Tidsforvrænget

Under fanen Tidsforvrænget vises skæve opgaver baseret på opgavens udførelsestid.

  • Angiv parametre – I det første afsnit vises parametrene, som bruges til at registrere tidsforvrænget tid. Standardkriterierne for registrering af tidsforvrængelse er: Opgavens udførelsestid er større end tre gange den gennemsnitlige udførelsestid, og opgavens udførelsestid er større end 30 sekunder. Du kan ændre parametrene baseret på dine behov. Under Skæv fase og Skævt diagram vises de tilsvarende oplysninger om faser og opgaver på samme måde som fanen Dataforvrænget , der er beskrevet tidligere.

  • Vælg Tidsforvrænget, hvorefter filtreret resultat vises i sektionen Skæv fase i henhold til de parametre, der er angivet i afsnittet Angiv parametre. Vælg ét element i sektionen Skæv fase , derefter udarbejdes det tilsvarende diagram i sektion 3, og opgavedetaljerne vises i højre nederste panel.

    Skærmbillede, der viser afsnittet med tid til diagnosticering af spark-brugergrænseflade.

Besøgsanalyse af eksekvering

Denne funktion frarådes i Fabric nu. Hvis du stadig vil bruge dette som en løsning, skal du få adgang til siden ved eksplicit at tilføje "/executorusage" bag stien "/diagnosticering" i URL-adressen på følgende måde:

Skærmbillede, der viser, hvordan du ændrer URL-adressen.

SQL/DataFrame-fanen

For arbejdsbelastninger, der bruger Spark SQL, giver SQL-fanen indsigt på forespørgselsniveau.

Du kan bruge denne visning til at:

  • Analyser forespørgselsudførelsesplaner
  • Varighed og ydeevne for gennemgang af forespørgsler

Bemærk

Tilgængeligheden af visse faner afhænger af arbejdsbelastningstypen og de aktiverede Spark-funktioner.

Spark Executor Rolling Logs: Nemmere adgang til store og lange opgaver

Efterhånden som Spark-applikationer fortsætter med at vokse i skala og varighed, er effektiv logstyring og -analyse blevet stadig mere kritisk. For at imødekomme disse skiftende behov har vi introduceret forbedringer af Spark History Server (til fuldførte programmer) og Spark-brugergrænsefladen (til kørende programmer), hvilket muliggør rullende eksekutorlogge for Spark 3.4 og nyere.

Med denne forbedring opdeler systemet automatisk logfiler i timesegmenter, når en eksekutorlog overstiger 16 MB, eller Spark-jobbet kører i mere end én time. Dette gør det nemmere at navigere, se og downloade logfiler uden at beskæftige sig med ekstremt store filer.

Du kan nu:

  • Få vist logfiler efter time for hurtigt at finde specifikke udførelsesvinduer
  • Få adgang til de seneste aktive logfiler, mens jobbet stadig kører.
  • Download individuelle timelogfiler eller alle logfiler samlet efter behov

Denne funktion giver brugerne mulighed for nemt at finde og analysere logfiler fra et bestemt tidspunkt, samtidig med at de undgår besværet med at downloade eller åbne en massiv enkelt logfil.

Nedenfor er et eksempel på visningen Rullende logfiler for udfører:

Skærmbillede, der viser rullende logfiler til gnisteksekutor.