Delen via


Overzicht van Apache Spark-berekening in Microsoft Fabric

Van toepassing op:✅ Fabric Data Engineering en Data Science

Fabric Data Engineering en Data Science worden uitgevoerd op een volledig beheerd Apache Spark-rekenplatform. Starter-pools bieden snel opstarten van sessies, meestal in 5 tot 10 seconden, zonder handmatige installatie. Met aangepaste Spark-pools kunt u de knooppuntgrootte, het schaalgedrag en andere rekeninstellingen voor uw workload afstemmen. Kortom, starterspools bieden snelle, vooraf geconfigureerde Spark, terwijl aangepaste Spark-pools meer controle en flexibiliteit bieden.

Afbeelding van een Spark-rekenplatform met starterspools en aangepaste Spark-pools.

Starter Pools

Starter-pools zijn een snelle en eenvoudige manier om Spark binnen enkele seconden te gebruiken op het Microsoft Fabric-platform. U kunt Spark-sessies meteen gebruiken, in plaats van te wachten tot Spark de knooppunten voor u instelt, zodat u meer kunt doen met gegevens en sneller inzichten krijgt.

Afbeelding van een tabel met de configuratie van een starterspool.

Starter-pools hebben Apache Spark-clusters met sessies die altijd zijn ingeschakeld en klaar zijn voor uw aanvragen. Ze gebruiken middelgrote knooppunten die dynamisch omhoog schalen op basis van uw Spark-taakbehoeften.

Diagram met het ontwerp op hoog abstractieniveau van starter pools.

Wanneer u een starterspool gebruikt zonder extra bibliotheekafhankelijkheden of aangepaste Spark-eigenschappen, begint uw sessie doorgaans over 5 tot 10 seconden. Deze snelle opstarttijd is mogelijk omdat het cluster al wordt uitgevoerd en geen inrichtingstijd vereist.

Notitie

Starter-pools ondersteunen alleen gemiddelde knooppuntgrootte. Als u een andere knooppuntgrootte selecteert of rekenconfiguraties aanpast, gebruikt Fabric het opstarten van een sessie op aanvraag. Dit kan 2 tot 5 minuten duren.

Er zijn echter verschillende scenario's waarin het langer kan duren voordat uw sessie wordt gestart.

Aangepaste bibliotheken of Spark-eigenschappen: als u bibliotheken of aangepaste instellingen in uw omgeving hebt geconfigureerd, moet Spark de sessie aanpassen nadat deze is gemaakt. Dit proces kan ongeveer 30 seconden tot 5 minuten aan uw opstarttijd toevoegen, afhankelijk van het aantal en de grootte van uw bibliotheekafhankelijkheden.

Starterspools in uw regio worden volledig gebruikt: In zeldzame gevallen zijn de starterspools van een regio mogelijk tijdelijk uitgeput vanwege hoog verkeer. Als dat gebeurt, draait Fabric een nieuw cluster om aan uw aanvraag te voldoen. Dit duurt ongeveer 2 tot 5 minuten. Zodra het nieuwe cluster beschikbaar is, wordt de sessie gestart. Als u ook aangepaste bibliotheken wilt installeren, voegt u de extra 30 seconden toe aan 5 minuten die nodig zijn voor persoonlijke instellingen.

Geavanceerde netwerk- of beveiligingsfuncties (privékoppelingen of beheerde VNets): wanneer uw werkruimte netwerkfuncties heeft, zoals Tenant Private Links of Beheerde VNets, worden starterspools niet ondersteund. In dit geval moet Fabric een cluster op aanvraag maken, waardoor 2 tot 5 minuten wordt toegevoegd aan de begintijd van uw sessie. Als u ook bibliotheekafhankelijkheden hebt, kan die persoonlijke instellingenstap nog eens 30 seconden toevoegen aan 5 minuten.

Hier volgen enkele voorbeeldscenario's om mogelijke begintijden te illustreren:

Scenariobeschrijving Typische opstarttijd
standaardinstellingen, geen bibliotheken 5 – 10 seconden
Standaardinstellingen en bibliotheekafhankelijkheden 5 – 10 seconden + 30 seconden – 5 min (voor het instellen van de bibliotheek)
Veel verkeer in regio's, geen bibliotheken 2 – 5 minuten
Veel verkeer en bibliotheekafhankelijkheden 2 – 5 minuten + 30 seconden – 5 min (voor bibliotheken)
Netwerkbeveiliging (Privékoppelingen/VNet), geen bibliotheken 2 – 5 minuten
Netwerkbeveiliging en bibliotheekafhankelijkheden 2 – 5 minuten + 30 seconden – 5 min (voor bibliotheken)

Als het gaat om facturering en capaciteitsverbruik, worden er kosten in rekening gebracht voor het capaciteitsverbruik wanneer u begint met het uitvoeren van uw notebook of Apache Spark-taakdefinitie. Er worden geen kosten in rekening gebracht voor het moment dat de clusters inactief zijn in de pool.

Diagram met de fasen op hoog niveau in de facturering van starterspools.

Als u bijvoorbeeld een notebooktaak naar een starterspool verzendt, wordt u alleen gefactureerd voor de periode waarin de notebooksessie actief is. De gefactureerde tijd bevat geen niet-actieve tijd of de tijd die nodig is om de sessie aan te passen met de Spark-context. Zie Starterspools configureren in Fabric voor meer informatie.

Sparkpools

Een Spark-pool is een manier om Spark te vertellen wat voor soort resources u nodig hebt voor uw gegevensanalysetaken. U kunt uw Spark-pool een naam geven en kiezen hoeveel en hoe groot de knooppunten (de computers die het werk uitvoeren) zijn. U kunt spark ook laten weten hoe u het aantal knooppunten kunt aanpassen, afhankelijk van hoeveel werk u hebt. Het maken van een Spark-pool is gratis; u betaalt alleen wanneer u een Spark-taak uitvoert in de pool en vervolgens worden de knooppunten voor u ingesteld.

Als u uw Spark-pool 2 minuten lang niet gebruikt na het verstrijken van uw sessie, wordt uw Spark-pool vrijgegeven. Deze standaardperiode voor het verlopen van de sessie is ingesteld op 20 minuten en u kunt deze desgewenst wijzigen. Als u een werkruimtebeheerder bent, kunt u ook aangepaste Spark-pools voor uw werkruimte maken en deze de standaardoptie voor andere gebruikers maken. Op deze manier kunt u tijd besparen en voorkomen dat u telkens wanneer u een notebook of een Spark-taak uitvoert een nieuwe Spark-pool instelt. Het starten van aangepaste Spark-pools duurt ongeveer drie minuten, omdat Spark de knooppunten moet ophalen uit Azure.

U kunt zelfs Spark-pools met één knooppunt maken door het minimale aantal knooppunten in te stellen op één, zodat de bestuurder en de uitvoerder worden uitgevoerd in één knooppunt dat wordt geleverd met herstelbare HA en geschikt is voor kleine werkbelastingen.

De grootte en het aantal knooppunten dat u in uw aangepaste Spark-pool kunt hebben, is afhankelijk van uw Microsoft Fabric capaciteit. Capaciteit is een meting van hoeveel rekenkracht u kunt gebruiken. Een manier om erover na te denken is dat twee Apache Spark vCores (een eenheid van Spark-rekenkracht) gelijk zijn aan één capaciteitseenheid.

Notitie

In Apache Spark krijgen gebruikers twee Apache Spark vCores voor elke capaciteitseenheid die ze reserveren als onderdeel van hun SKU. Eén capaciteitseenheid = twee Spark-vCores. F64 geeft bijvoorbeeld 128 Spark vCores en een 3x burst-vermenigvuldiger verhoogt deze waarde tot 384 Spark vCores.

Een Fabric-capaciteit-SKU F64 heeft bijvoorbeeld 64 capaciteitseenheden, wat gelijk is aan 384 Spark VCores (64 * 2 * 3X Burst Multiplier). U kunt deze Spark VCores gebruiken om knooppunten van verschillende grootten te maken voor uw aangepaste Spark-pool, zolang het totale aantal Spark VCores niet groter is dan 384.

Spark-pools worden gefactureerd als starterspools; u betaalt niet voor de aangepaste Spark-pools die u hebt gemaakt, tenzij u een actieve Spark-sessie hebt gemaakt voor het uitvoeren van een notebook of Spark-taakdefinitie. U wordt alleen gefactureerd voor de duur van de uitvoering van uw taak. U wordt niet gefactureerd voor stappen zoals het maken en dealloceren van het cluster nadat de taak is voltooid.

Diagram met de hoofdfasen in de facturering van aangepaste zwembaden.

Als u bijvoorbeeld een notebooktaak verzendt naar een aangepaste Spark-pool, worden er alleen kosten in rekening gebracht voor de periode waarin de sessie actief is. De facturering voor die notebooksessie stopt zodra de Spark-sessie is gestopt of verlopen. Er worden geen kosten in rekening gebracht voor de tijd die nodig is om clusterexemplaren te verkrijgen uit de cloud of voor de tijd die nodig is voor het initialiseren van de Spark-context.

Mogelijke aangepaste poolconfiguraties voor F64 op basis van het vorige voorbeeld. Kleinere knooppuntgrootten hebben capaciteit verdeeld over meer knooppunten, dus het maximum aantal knooppunten is hoger. Hoewel grotere knooppunten rijk zijn aan resources, zijn er dus minder knooppunten nodig:

Infrastructuurcapaciteits-SKU Capaciteitseenheden Maximum aantal Spark-VCores met Burst Factor Knooppuntgrootte Maximum aantal knooppunten
F64 64 384 Klein 96
F64 64 384 Gemiddeld 48
F64 64 384 Groot 24
F64 64 384 X-groot 12
F64 64 384 XX-Groot 6

Notitie

Als u aangepaste pools wilt maken, hebt u beheerdersmachtigingen nodig voor de werkruimte. De Microsoft Fabric capaciteitsbeheerder moet ook machtigingen verlenen waarmee werkruimtebeheerders de grootte van aangepaste Spark-pools kunnen aanpassen. Zie Aan de slag met aangepaste Spark-pools in Fabric voor meer informatie.

Knooppunten

Een Exemplaar van een Apache Spark-pool bestaat uit één hoofdknooppunt en een of meer werkknooppunten. Een Spark-exemplaar kan beginnen met minimaal één knooppunt. Het hoofdknooppunt voert beheerservices uit, zoals Livy, YARN Resource Manager, ZooKeeper en het Apache Spark-stuurprogramma. Alle knooppunten voeren services uit, zoals Node Agent en YARN Node Manager. Alle werkknooppunten voeren de Apache Spark Executor-service uit.

Notitie

In Fabric is de verhouding tussen knooppunten en uitvoerders altijd 1:1. Wanneer u een pool instelt, wordt één knooppunt toegewezen aan het stuurprogramma en worden de resterende knooppunten gebruikt voor de uitvoerders. De enige uitzondering is in een configuratie met één knooppunt, waarbij de resources voor zowel het stuurprogramma als de uitvoerder worden gehalveerd.

Knooppuntgrootten

Een Spark-pool kan worden gedefinieerd met knooppuntgrootten die variëren van een klein rekenknooppunt (met 4 vCore en 32 GB geheugen) tot een dubbel groot rekenknooppunt (met 64 vCore en 512 GB geheugen per knooppunt). Knooppuntgrootten kunnen worden gewijzigd nadat de pool is gemaakt, hoewel de actieve sessie opnieuw moet worden gestart.

Grootte vCore Geheugen
Klein 4 32 GB
Gemiddeld 8 64 GB
Groot 16 128 GB
X-groot 32 256 GB
XX-Groot 64 512 GB

Notitie

Knooppuntgrootten X-Large en XX-Large zijn alleen toegestaan voor fabric-SKU's die geen proefversie zijn.

Automatisch schalen

Automatische schaalaanpassing voor Apache Spark-pools maakt het mogelijk om rekenresources automatisch omhoog en omlaag te schalen op basis van de hoeveelheid activiteit. Wanneer u de autoscale functie inschakelt, stelt u het minimum- en maximum aantal knooppunten voor schaalvergroting in. Wanneer u de functie voor automatisch schalen uitschakelt, blijft het aantal knooppunten dat is ingesteld, vast. U kunt deze instelling wijzigen nadat de pool is gemaakt, hoewel u het exemplaar mogelijk opnieuw moet starten.

Notitie

Spark.yarn.executor.decommission.enabled is standaard ingesteld op true, waardoor het automatisch afsluiten van onderbenutte knooppunten wordt ingeschakeld om de rekenefficiëntie te optimaliseren. Als de voorkeur is om minder agressief naar beneden te schalen, kan deze configuratie worden uitgeschakeld.

Dynamische toewijzing

Met dynamische toewijzing kan de Apache Spark-toepassing meer uitvoerders aanvragen als de taken de belasting overschrijden die huidige uitvoerders kunnen dragen. Ook worden de uitvoerders vrijgegeven wanneer de taken zijn voltooid en als de Spark-toepassing wordt verplaatst naar de niet-actieve status. Zakelijke gebruikers vinden het vaak moeilijk om de uitvoerdersconfiguraties af te stemmen, omdat ze sterk verschillen in verschillende fasen van een Spark-taakuitvoeringsproces. Deze configuraties zijn ook afhankelijk van het volume aan verwerkte gegevens, dat van tijd tot tijd verandert. U kunt dynamische toewijzing van uitvoerdersoptie inschakelen als onderdeel van de poolconfiguratie, waardoor automatische toewijzing van uitvoerders aan de Spark-toepassing mogelijk is op basis van de knooppunten die beschikbaar zijn in de Spark-pool.

Wanneer u de optie voor dynamische toewijzing inschakelt voor elke ingediende Spark-applicatie, reserveert het systeem executors tijdens de indiendingsstap van de taak, gebaseerd op het minimum aantal knooppunten. U geeft maximale knooppunten op ter ondersteuning van geslaagde scenario's voor automatische schaalaanpassing.