Dela via


Vad är Apache Spark-beräkning i Microsoft Fabric?

Gäller för:✅ Dataingenjör ing och Datavetenskap i Microsoft Fabric

Microsoft Fabric Dataingenjör ing- och Datavetenskap-funktioner fungerar på en fullständigt hanterad Apache Spark-beräkningsplattform. Den här plattformen är utformad för att leverera oöverträffad hastighet och effektivitet. Med startpooler kan du förvänta dig snabb Apache Spark-sessionsinitiering, vanligtvis inom 5 till 10 sekunder, utan att behöva konfigureras manuellt. Du får också flexibiliteten att anpassa Apache Spark-pooler enligt dina specifika datateknik- och datavetenskapskrav. Plattformen möjliggör en optimerad och skräddarsydd analysupplevelse.

Bild av en Spark-beräkningsplattform med startpooler och anpassade Spark-pooler.

Startpooler

Startpooler är ett snabbt och enkelt sätt att använda Spark på Microsoft Fabric-plattformen inom några sekunder. Du kan använda Spark-sessioner direkt i stället för att vänta på att Spark ska konfigurera noderna åt dig, vilket hjälper dig att göra mer med data och få insikter snabbare.

Bild av en tabell som visar konfigurationen av startpoolen.

Startpooler har Apache Spark-kluster som alltid är på och redo för dina begäranden. De använder medelstora noder som dynamiskt skalas upp baserat på dina Spark-jobbbehov.

Diagram som visar designen på hög nivå av startpooler.

Startpooler har också standardinställningar som gör att du snabbt kan installera bibliotek utan att sakta ned sessionens starttid. Men om du vill använda extra anpassade Apache Spark-egenskaper eller -bibliotek från din arbetsyta eller kapacitetsinställningar tar Det längre tid för Spark att hämta noderna åt dig. När det gäller fakturering och kapacitetsförbrukning debiteras du för kapacitetsförbrukningen när du börjar köra din notebook- eller Apache Spark-jobbdefinition. Du debiteras inte för den tid som klustren är inaktiva i poolen.

Diagram som visar de övergripande stegen i faktureringen av startpooler.

Om du till exempel skickar ett notebook-jobb till en startpool debiteras du endast för den tidsperiod då notebook-sessionen är aktiv. Den fakturerade tiden inkluderar inte inaktivitetstiden eller den tid det tar att anpassa sessionen med Spark-kontexten.

Spark-pooler

En Spark-pool är ett sätt att tala om för Spark vilken typ av resurser du behöver för dina dataanalysuppgifter. Du kan ge Spark-poolen ett namn och välja hur många och hur stora noderna (de datorer som utför arbetet) är. Du kan också berätta för Spark hur du justerar antalet noder beroende på hur mycket arbete du har. Det är kostnadsfritt att skapa en Spark-pool. du betalar bara när du kör ett Spark-jobb i poolen och sedan konfigurerar Spark noderna åt dig.

Om du inte använder Spark-poolen på två minuter efter att sessionen har gått ut frigörs Spark-poolen. Den här standardperioden för sessionens förfallotid är inställd på 20 minuter och du kan ändra den om du vill. Om du är arbetsyteadministratör kan du också skapa anpassade Spark-pooler för din arbetsyta och göra dem till standardalternativet för andra användare. På så sätt kan du spara tid och undvika att konfigurera en ny Spark-pool varje gång du kör en notebook-fil eller ett Spark-jobb. Det tar ungefär tre minuter att starta anpassade Spark-pooler eftersom Spark måste hämta noderna från Azure.

Du kan till och med skapa Spark-pooler med en enda nod genom att ange det minsta antalet noder till en, så att drivrutinen och körkörningen körs i en enda nod som levereras med återställningsbar HA och passar för små arbetsbelastningar.

Storleken och antalet noder som du kan ha i din anpassade Spark-pool beror på din Microsoft Fabric-kapacitet. Kapacitet är ett mått på hur mycket databehandlingskraft du kan använda i Azure. Ett sätt att tänka på det är att två virtuella Apache Spark-kärnor (en enhet för beräkningskraft för Spark) är lika med en kapacitetsenhet. En SKU F64 för infrastrukturkapacitet har till exempel 64 kapacitetsenheter, vilket motsvarar 384 virtuella Spark-kärnor (64 * 2 * 3X burst multiplikator). Du kan använda dessa virtuella Spark-kärnor för att skapa noder av olika storlekar för din anpassade Spark-pool, så länge det totala antalet virtuella Spark-kärnor inte överstiger 384.

Spark-pooler faktureras som startpooler. du betalar inte för de anpassade Spark-pooler som du har skapat om du inte har en aktiv Spark-session som skapats för att köra en notebook- eller Spark-jobbdefinition. Du debiteras bara under hela jobbkörningarna. Du debiteras inte för faser som när klustret skapas och frigörs när jobbet har slutförts.

Diagram som visar de övergripande stegen i faktureringen av anpassade pooler.

Om du till exempel skickar ett notebook-jobb till en anpassad Spark-pool debiteras du bara för den tidsperiod då sessionen är aktiv. Faktureringen för notebook-sessionen stoppas när Spark-sessionen har stoppats eller upphört att gälla. Du debiteras inte för den tid det tar att hämta klusterinstanser från molnet eller för den tid det tar att initiera Spark-kontexten.

Möjliga anpassade poolkonfigurationer för F64 baserat på föregående exempel:

SKU för infrastrukturkapacitet Kapacitetsenheter Virtuella Spark-kärnor Nodstorlek Maximalt antal noder
F64 64 384 Litet 96
F64 64 384 Medium 48
F64 64 384 Stort 24
F64 64 384 X-Large 12
F64 64 384 XX-Large 6

Kommentar

För att skapa anpassade pooler behöver du administratörsbehörigheter för arbetsytan. Och Kapacitetsadministratören för Microsoft Fabric måste bevilja behörigheter så att administratörer för arbetsytor kan ändra storlek på sina anpassade Spark-pooler. Mer information finns i Kom igång med anpassade Spark-pooler i Infrastrukturresurser

Noder

En Apache Spark-poolinstans består av en huvudnod och arbetsnoder, kan starta minst en nod i en Spark-instans. Huvudnoden kör extra hanteringstjänster som Livy, Yarn Resource Manager, Zookeeper och Apache Spark-drivrutinen. Alla noder kör tjänster som Node Agent och Yarn Node Manager. Alla arbetsnoder kör Apache Spark Executor-tjänsten.

Nodstorlekar

En Spark-pool kan definieras med nodstorlekar som sträcker sig från en liten beräkningsnod (med 4 virtuella kärnor och 32 GB minne) till en dubbel extra stor beräkningsnod (med 64 virtuella kärnor och 512 GB minne per nod). Nodstorlekar kan ändras när poolen har skapats, även om den aktiva sessionen måste startas om.

Storlek V-kärna Minne
Litet 4 32 GB
Medium 8 64 GB
Stort 16 128 GB
X-Large 32 256 GB
XX-Large 64 512 GB

Kommentar

Nodstorlekarna X-Large och XX-Large tillåts endast för icke-utvärderingsversioner av Fabric-SKU:er.

Automatisk skalning

Autoskalning för Apache Spark-pooler möjliggör automatisk upp- och nedskalning av beräkningsresurser baserat på mängden aktivitet. När du aktiverar funktionen autoskalning anger du det lägsta och högsta antalet noder som ska skalas. När du inaktiverar autoskalningsfunktionen förblir antalet noder fasta. Du kan ändra den här inställningen när poolen har skapats, men du kan behöva starta om instansen.

Kommentar

Som standard är spark.yarn.executor.decommission.enabled inställt på sant, vilket gör det möjligt att automatiskt stänga av underutnyttjade noder för att optimera beräkningseffektiviteten. Om mindre aggressiv nedskalning föredras kan den här konfigurationen ställas in på false

Dynamisk fördelning

Med dynamisk allokering kan Apache Spark-programmet begära fler utförare om uppgifterna överskrider den belastning som aktuella utförare kan bära. Den släpper även körarna när jobben har slutförts och om Spark-programmet övergår till inaktivt tillstånd. Företagsanvändare har ofta svårt att finjustera körkonfigurationerna eftersom de skiljer sig mycket mellan olika steg i en Spark-jobbkörningsprocess. Dessa konfigurationer är också beroende av mängden data som bearbetas, vilket ändras då och då. Du kan aktivera dynamisk allokering av körbara filer som en del av poolkonfigurationen, vilket möjliggör automatisk allokering av utförare till Spark-programmet baserat på de noder som är tillgängliga i Spark-poolen.

När du aktiverar alternativet dynamisk allokering för varje Spark-program som skickas reserverar systemet utförare under jobböverföringssteget baserat på de minsta noderna. Du anger maximalt antal noder som stöd för lyckade scenarier för automatisk skalning.