Hvad er Apache Spark-beregning 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 Apache Spark-beregningsplatform. Denne platform er designet til at levere uovertruffen hastighed og effektivitet. Med startpuljer kan du forvente hurtig initialisering af Apache Spark-sessionen, typisk inden for 5 til 10 sekunder uden behov for manuel konfiguration. Du får også fleksibiliteten til at tilpasse Apache Spark-puljer i henhold til dine specifikke krav til datakonstruktion og datavidenskab. Platformen muliggør en optimeret og skræddersyet analyseoplevelse. Kort sagt er en startbassin en hurtig måde at bruge forudkonfigureret Spark på, mens en Spark-pulje tilbyder tilpasning og fleksibilitet.
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.
Startpuljer har Apache 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.
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 Apache 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 Apache Spark-job. Du faktureres ikke for den tid, klyngerne er inaktive i puljen.
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 Apache Spark VCores (en enhed med beregningskraft til Spark) er lig med én kapacitetsenhed.
Bemærk
I Apache Spark får brugerne to Apache Spark VCores for hver kapacitetsenhed, de reserverer som en del af deres SKU. One Capacity Unit = Two Spark VCores So F64 => 128 Spark Vcores, og hvor der anvendes en 3x Burst Multiplier, hvilket giver i alt 384 Spark VCores
En Fabric-kapacitets-SKU F64 har f.eks. 64 kapacitetsenheder, hvilket svarer til 384 Spark VCores (64 * 2 * 3X Burst Multiplier). 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 384.
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.
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 | Max Spark VCores med Burst Factor | 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 Apache Spark-driveren. Alle noder kører tjenester som Node Agent og Yarn Node Manager. Alle arbejdernoder kører Tjenesten Apache Spark Executor.
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 dobbelt ekstra 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 |
Bemærk
Nodestørrelserne X-Large og XX-Large er kun tilladt for Fabric-SKU'er, der ikke er prøveversioner.
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 Apache Spark-programmet at anmode om flere eksekveringsanmodninger, hvis opgaverne overstiger den belastning, som de aktuelle eksekverere 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 eksekutorer under jobindsendelsestrinnet baseret på minimumnoderne. Du angiver det maksimale antal noder, der understøtter vellykkede automatiske skaleringsscenarier.