Hvad er Spark Compute i Microsoft Fabric?

Gælder for: Dataudvikler ing og datavidenskab i Microsoft Fabric

Microsoft Fabric Dataudvikler ing- og Data Science-oplevelser fungerer på en fuldt administreret Spark-beregningsplatform. Denne platform er designet til at levere uovertruffen hastighed og effektivitet. Med startpuljer kan du forvente hurtig initialisering af Spark-sessionen, typisk inden for 5 til 10 sekunder, uden behov for manuel konfiguration. Du får også fleksibiliteten til at tilpasse Spark-puljer i henhold til dine specifikke krav til datakonstruktion og datavidenskab. Platformen muliggør en optimeret og skræddersyet analyseoplevelse.

Billede af en Spark-beregningsplatform med startpuljer og brugerdefinerede Spark-puljer.

Startbassiner

Startbassiner er en hurtig og nem måde at bruge Spark på Microsoft Fabric-platformen på få sekunder. Du kan bruge Spark-sessioner med det samme i stedet for at vente på, at Spark konfigurerer noderne for dig, hvilket hjælper dig med at gøre mere med data og få hurtigere indsigt.

Billede af en tabel, der viser konfigurationen af startpuljen.

Startpuljer har Spark-klynger, der altid er klar til dine anmodninger. De bruger mellemstore noder, der dynamisk skaleres op på baggrund af dine Behov for Spark-job.

Diagram, der viser det overordnede design af startpuljer.

Startgrupper har også standardindstillinger, der gør det muligt at installere biblioteker hurtigt uden at gøre sessionens starttid langsommere. Men hvis du vil bruge ekstra brugerdefinerede Spark-egenskaber eller -biblioteker fra dit arbejdsområde eller dine kapacitetsindstillinger, tager Spark længere tid at hente noderne til dig. Når det kommer til fakturering og kapacitetsforbrug, bliver du opkrævet for kapacitetsforbruget, når du begynder at køre definitionen af din notesbog eller Spark-job. Du faktureres ikke for den tid, klyngerne er inaktive i puljen.

Diagram, der viser faserne på højt niveau i faktureringen af startpuljer.

Hvis du f.eks. sender et notesbogjob til en startpulje, faktureres du kun for den tidsperiode, hvor notesbogsessionen er aktiv. Den fakturerede tid omfatter ikke den inaktive tid eller den tid, det tager at tilpasse sessionen med Spark-konteksten.

Spark-bassiner

En Spark-pulje er en måde at fortælle Spark, hvilken type ressourcer du har brug for til dine dataanalyseopgaver. Du kan give din Spark-pool et navn og vælge, hvor mange og hvor store noderne (de maskiner, der udfører arbejdet) er. Du kan også fortælle Spark, hvordan du justerer antallet af noder, afhængigt af hvor meget arbejde du har. Det er gratis at oprette en Spark-pool. du betaler kun, når du kører et Spark-job i puljen, og derefter konfigurerer Spark noderne for dig.

Hvis du ikke bruger din Spark-pool i 2 minutter, efter din session udløber, bliver din Spark-pool deallokeret. Denne standardperiode for sessionens udløb er angivet til 20 minutter, og du kan ændre den, hvis du vil. Hvis du er administrator af arbejdsområdet, kan du også oprette brugerdefinerede Spark-puljer for dit arbejdsområde og gøre dem til standardindstillingen for andre brugere. På denne måde kan du spare tid og undgå at oprette en ny Spark-pool, hver gang du kører en notesbog eller et Spark-job. Det tager ca. tre minutter at starte brugerdefinerede Spark-puljer, fordi Spark skal hente noderne fra Azure.

Du kan endda oprette Spark-puljer med en enkelt node ved at angive det mindste antal noder til én, så driveren og eksekveren kører i en enkelt node, der leveres med restorable HA og er velegnet til små arbejdsbelastninger.

Størrelsen og antallet af noder, du kan have i din brugerdefinerede Spark-pulje, afhænger af din Microsoft Fabric-kapacitet. Kapacitet er en måling af, hvor meget beregningskraft du kan bruge i Azure. En måde at tænke på det på er, at to Spark VCores (en enhed med beregningskraft til Spark) er lig med én kapacitetsenhed. En Fabric-kapacitets-SKU F64 har f.eks. 64 kapacitetsenheder, hvilket svarer til 128 Spark VCores. Du kan bruge disse Spark VCores til at oprette noder i forskellige størrelser til din brugerdefinerede Spark-pulje, så længe det samlede antal Spark VCores ikke overstiger 128.

Spark-puljer faktureres som startbassiner; du betaler ikke for de brugerdefinerede Spark-puljer, du har oprettet, medmindre du har oprettet en aktiv Spark-session til kørsel af en notesbog eller en Spark-jobdefinition. Du faktureres kun for varigheden af dine jobkørsler. Du faktureres ikke for faser som oprettelse af klyngen og deallocation, når jobbet er fuldført.

Diagram, der viser faserne på højt niveau i faktureringen af brugerdefinerede puljer.

Hvis du f.eks. sender et notesbogjob til en brugerdefineret Spark-gruppe, faktureres du kun for den tidsperiode, hvor sessionen er aktiv. Faktureringen for notesbogsessionen stopper, når Spark-sessionen er stoppet eller udløbet. Du faktureres ikke for den tid, det tager at hente klyngeforekomster fra cloudmiljøet, eller for den tid, det tager at initialisere Spark-konteksten.

Mulige brugerdefinerede puljekonfigurationer for F64 baseret på det forrige eksempel:

Sku'en for stofkapacitet Kapacitetsenheder Spark VCores Nodestørrelse Maksimalt antal noder
F64 64 384 Lille 96
F64 64 384 Mellem 48
F64 64 384 Stor 24
F64 64 384 X-stor 12
F64 64 384 XX-stor 6

Bemærk

Hvis du vil oprette brugerdefinerede grupper, skal du have administratortilladelser til arbejdsområdet. Og Microsoft Fabric-kapacitetsadministratoren skal give tilladelser til at give arbejdsområdeadministratorer tilladelse til at tilpasse størrelsen af deres brugerdefinerede Spark-puljer. Du kan få mere at vide under Kom i gang med brugerdefinerede Spark-puljer i Fabric

Noder

En Forekomst af Apache Spark-puljen består af én hovednode og arbejdernoder og kan starte mindst én node i en Spark-forekomst. Hovednoden kører ekstra administrationstjenester som Livy, Yarn Resource Manager, Zookeeper og Spark-driveren. Alle noder kører tjenester som Node Agent og Yarn Node Manager. Alle arbejdernoder kører Spark Executor-tjenesten.

Nodestørrelser

En Spark-pulje kan defineres med nodestørrelser, der spænder fra en lille beregningsnode (med 4 vCore og 32 GB hukommelse) til en stor beregningsnode (med 64 vCore og 512 GB hukommelse pr. node). Nodestørrelser kan ændres efter oprettelsen af gruppen, selvom den aktive session skal genstartes.

Størrelse vCore Hukommelse
Lille 4 32 GB
Mellem 8 64 GB
Stor 16 128 GB
X-stor 32 256 GB
XX-stor 64 512 GB

Automatisk skalering

Autoskalering for Apache Spark-puljer gør det muligt automatisk at skalere op og ned på beregningsressourcer baseret på mængden af aktivitet. Når du aktiverer funktionen til automatisk skalering, angiver du det minimum- og maksimumantal noder, der skal skaleres. Når du deaktiverer funktionen til automatisk skalering, forbliver antallet af noder, der er angivet, fast. Du kan ændre denne indstilling efter oprettelsen af puljen, selvom du muligvis skal genstarte forekomsten.

Bemærk

Spark.yarn.executor.decommission.enabled er som standard angivet til true, hvilket muliggør automatisk lukning af underudnyttede noder for at optimere beregningseffektiviteten. Hvis der foretrækkes mindre aggressiv nedskalering, kan denne konfiguration indstilles til falsk

Dynamisk fordeling

Dynamisk allokering gør det muligt for Spark-programmet at anmode om flere eksekveringsanmodninger, hvis opgaverne overskrider den belastning, som de aktuelle eksekveringsforespørgslerne kan bære. Den frigiver også eksekutorerne, når jobbene er fuldført, og hvis Spark-programmet skifter til inaktiv tilstand. Virksomhedsbrugere har ofte svært ved at tilpasse eksekveringskonfigurationerne, fordi de er meget forskellige på tværs af forskellige faser i en Spark-jobudførelsesproces. Disse konfigurationer er også afhængige af mængden af behandlede data, som ændres fra tid til anden. Du kan aktivere dynamisk allokering af eksekveringsindstillingerne som en del af konfigurationen af gruppen, hvilket muliggør automatisk allokering af eksekveringsprogrammer til Spark-programmet baseret på de noder, der er tilgængelige i Spark-gruppen.

Når du aktiverer indstillingen for dynamisk allokering for hvert Spark-program, der sendes, reserverer systemet eksekveringsmaskiner under jobindsendelsestrinnet baseret på de maksimale noder. Du angiver det maksimale antal noder, der understøtter vellykkede automatiske skaleringsscenarier.