Samtidighetsgränser och köer i Apache Spark för Microsoft Fabric
Gäller för:✅ Dataingenjör ing och Datavetenskap i Microsoft Fabric
Microsoft Fabric tillåter allokering av beräkningsenheter via kapacitet, vilket är en dedikerad uppsättning resurser som är tillgängliga vid en viss tidpunkt som ska användas. Kapacitet definierar möjligheten för en resurs att utföra en aktivitet eller att producera utdata. Olika objekt förbrukar olika kapacitet vid en viss tidpunkt. Microsoft Fabric erbjuder kapacitet via Infrastruktur-SKU:er och utvärderingsversioner. Mer information finns i Vad är kapacitet?.
När användarna skapar en Microsoft Fabric-kapacitet i Azure väljer de en kapacitetsstorlek baserat på deras storlek på analysarbetsbelastningen. I Apache Spark får användarna två virtuella Apache Spark-kärnor för varje kapacitetsenhet som de reserverar som en del av sin SKU.
En kapacitetsenhet = två virtuella Spark-kärnor
När de har köpt kapaciteten kan administratörer skapa arbetsytor i kapaciteten i Microsoft Fabric. De virtuella Spark-kärnor som är associerade med kapaciteten delas mellan alla Apache Spark-baserade objekt som notebook-filer, Apache Spark-jobbdefinitioner och sjöhus som skapats på dessa arbetsytor.
Samtidighetsbegränsning och köning
Spark for Fabric tillämpar en kärnbaserad begränsnings- och kömekanism, där användare kan skicka jobb baserat på de köpta SKU:erna för Infrastrukturkapacitet. Kömekanismen är en enkel FIFO-baserad kö som söker efter tillgängliga jobbplatser och automatiskt försöker utföra jobben igen när kapaciteten har blivit tillgänglig. När användare skickar notebook- eller lakehouse-jobb som Load to Table när deras kapacitet har maximal användning på grund av samtidiga jobb som körs med alla Spark Vcores som är tillgängliga för deras köpta SKU för Infrastrukturkapacitet begränsas de med meddelandet
HTTP-svarskod 430: Det här Spark-jobbet kan inte köras eftersom du har nått en Hastighetsgräns för Spark-beräkning eller API. Om du vill köra det här Spark-jobbet avbryter du ett aktivt Spark-jobb via övervakningshubben eller väljer en större kapacitets-SKU eller försöker igen senare.
När köning är aktiverat läggs notebook-jobb som utlöses från pipelines och jobbschemaläggare och Spark-jobbdefinitioner till i kön och görs automatiskt ett nytt försök när kapaciteten frigörs. Köns giltighetstid är inställd på 24 timmar från jobbets sändningstid. Efter den här perioden måste jobben skickas på nytt.
Infrastrukturkapaciteter aktiveras med bursting som gör att du kan använda extra beräkningskärnor utöver vad som har köpts för att påskynda körningen av en arbetsbelastning. För Apache Spark-arbetsbelastningar kan användare skicka jobb med totalt 3 X spark-virtuella kärnor som köpts.
Kommentar
Burst-faktorn ökar bara det totala antalet virtuella Spark-kärnor för att hjälpa till med samtidigheten, men ökar inte maximalt antal kärnor per jobb. Användare kan inte skicka ett jobb som kräver fler kärnor än vad deras infrastrukturkapacitet erbjuder.
I följande avsnitt visas olika kärnbaserade gränser för Spark-arbetsbelastningar baserat på SKU:er för Microsoft Fabric-kapacitet:
SKU för infrastrukturkapacitet | Motsvarande Power BI SKU | Virtuella Spark-kärnor | Maximalt antal virtuella Spark-kärnor med burst-faktor | Kögräns |
---|---|---|---|---|
F2 | - | 4 | 20 | 4 |
F4 | - | 8 | 24 | 4 |
F8 | - | 16 | 48 | 8 |
F16 | - | 32 | 96 | 16 |
F32 | - | 64 | 192 | 32 |
F64 | P1 | 128 | 384 | 64 |
F128 | P2 | 256 | 768 | 128 |
F256 | P3 | 512 | 1536 | 256 |
F512 | P4 | 1024 | 3072 | 512 |
F1024 | - | 2048 | 6144 | 1024 |
F2048 | - | 4096 | 12288 | 2048 |
Utvärderingskapacitet | P1 | 128 | 128 | NA |
Exempelberäkning: F64 SKU erbjuder 128 virtuella Spark-kärnor. Burst-faktorn som tillämpas för en F64 SKU är 3, vilket ger totalt 384 Virtuella Spark-kärnor. Burst-faktorn används bara för att hjälpa till med samtidighet och ökar inte det maximala antalet tillgängliga kärnor för ett enda Spark-jobb. Det innebär att en enskild notebook- eller Spark-jobbdefinition eller lakehouse-jobb kan använda en poolkonfiguration på högst 128 virtuella kärnor och 3 jobb med samma konfiguration kan köras samtidigt. Om notebook-filer använder en mindre beräkningskonfiguration kan de köras samtidigt tills maximal användning når gränsen på 384 SparkVcore.
Kommentar
Jobben har en kö förfallotid på 24 timmar, varefter de avbryts och användarna måste skicka in dem igen för jobbkörning.
Spark for Fabric-begränsning har inte framtvingade godtyckliga jobbbaserade gränser och begränsningen baseras endast på antalet kärnor som tillåts för den köpta SKU:n för infrastrukturresurser. Jobbantagningen är som standard en optimistisk antagningskontroll, där jobben släpps in baserat på deras minimikrav för kärnor. Läs mer om den optimistiska jobbantagningen Jobbinträde och hantering Om standardalternativet för pool (startpool) har valts för arbetsytan, visar följande tabell maxgränsen för samtidighetsjobb.
Läs mer om standardkonfigurationerna för startpoolen baserat på SKU: n För infrastrukturkapacitet konfigurera startpooler.
Bristning på jobbnivå
Administratörer kan konfigurera sina Apache Spark-pooler så att de använder maximalt antal Spark-kärnor med burst-faktorn tillgänglig för hela kapaciteten. Till exempel kan en arbetsyteadministratör som har sin arbetsyta kopplad till en F64 Fabric-kapacitet nu konfigurera sin Spark-pool (startpool eller anpassad pool) till 384 Virtuella Spark-kärnor, där maximalt antal noder i Startpooler kan anges till 48 eller administratörer kan konfigurera en XX Stor nodstorlekspool med 6 maxnoder.
Relaterat innehåll
- Kom igång med Administrationsinställningar för Apache Spark-arbetsytor i Microsoft Fabric.
- Lär dig mer om Apache Spark-beräkning för Infrastrukturdatateknik och datavetenskapsupplevelser.