Voorbereiden op het gebruik van Apache Spark

Voltooid

Apache Spark is een gedistribueerd framework voor gegevensverwerking dat grootschalige gegevensanalyse mogelijk maakt door het coördineren van werk over meerdere verwerkingsknooppunten in een cluster, ook wel bekend in Microsoft Fabric als spark-pool. Eenvoudiger gezegd, Spark maakt gebruik van een 'delen en veroveren'-benadering voor het snel verwerken van grote hoeveelheden gegevens door het werk over meerdere computers te distribueren. Het proces voor het distribueren van taken en het sorteren van resultaten wordt voor u afgehandeld door Spark.

Spark kan code uitvoeren die is geschreven in een breed scala aan talen, waaronder Java, Scala (een scripttaal op basis van Java), Spark R, Spark SQL en PySpark (een Spark-specifieke variant van Python). In de praktijk worden de meeste data engineering- en analyseworkloads uitgevoerd met behulp van een combinatie van PySpark en Spark SQL.

Spark-pools

Een Spark-pool bestaat uit rekenknooppunten die gegevensverwerkingstaken distribueren. De algemene architectuur wordt weergegeven in het volgende diagram.

Diagram van een Spark-pool.

Zoals in het diagram wordt weergegeven, bevat een Spark-pool twee soorten knooppunten:

  1. Een hoofdknooppunt in een Spark-pool coördineert gedistribueerde processen via een stuurprogrammaprogramma .
  2. De pool bevat meerdere werkknooppunten waarop uitvoerders de werkelijke gegevensverwerkingstaken uitvoeren.

De Spark-pool maakt gebruik van deze gedistribueerde rekenarchitectuur voor toegang tot en verwerking van gegevens in een compatibel gegevensarchief, zoals een data lakehouse op basis van OneLake.

Spark-pools in Microsoft Fabric

Microsoft Fabric biedt een starterspool in elke werkruimte, zodat Spark-taken kunnen worden gestart en snel kunnen worden uitgevoerd met minimale installatie en configuratie. U kunt de starterspool configureren om de knooppunten te optimaliseren die deze bevat in overeenstemming met uw specifieke workloadbehoeften of kostenbeperkingen.

Daarnaast kunt u aangepaste Spark-pools maken met specifieke knooppuntconfiguraties die ondersteuning bieden voor uw specifieke behoeften voor gegevensverwerking.

Notitie

De mogelijkheid om instellingen voor Spark-pools aan te passen, kan worden uitgeschakeld door Fabric-beheerders op het niveau van de infrastructuurcapaciteit. Zie Instellingen voor capaciteitsbeheer voor Data-engineer ing en Datawetenschap in de documentatie over infrastructuur voor meer informatie.

U kunt instellingen voor de starterspool beheren en nieuwe Spark-pools maken in de sectie Data-engineer/Wetenschap van de werkruimte-instellingen.

Schermopname van de pagina Spark-instellingen in Microsoft Fabric.

Specifieke configuratie-instellingen voor Spark-pools zijn:

  • Knooppuntfamilie: het type virtuele machines dat wordt gebruikt voor de Spark-clusterknooppunten. In de meeste gevallen bieden geoptimaliseerde knooppunten voor geheugen optimale prestaties.
  • Automatisch schalen: of u knooppunten al dan niet automatisch wilt inrichten als dat nodig is, en zo ja, het eerste en maximum aantal knooppunten dat aan de pool moet worden toegewezen.
  • Dynamische toewijzing: of uitvoerdersprocessen dynamisch moeten worden toegewezen op de werkknooppunten op basis van gegevensvolumes.

Als u een of meer aangepaste Spark-pools in een werkruimte maakt, kunt u een van deze pools (of de starterspool) instellen als de standaardpool die moet worden gebruikt als een specifieke pool niet is opgegeven voor een bepaalde Spark-taak.

Tip

Zie Starterspools configureren in Microsoft Fabric en aangepaste Spark-pools maken in Microsoft Fabric in de documentatie van Microsoft Fabric voor meer informatie over het beheren van Spark-pools in Microsoft Fabric.

Runtimes en omgevingen

Het opensource-ecosysteem van Spark bevat meerdere versies van de Spark-runtime, die bepaalt welke versie van Apache Spark, Delta Lake, Python en andere kernsoftwareonderdelen zijn geïnstalleerd. Daarnaast kunt u binnen een runtime een brede selectie codebibliotheken installeren en gebruiken voor veelvoorkomende (en soms zeer gespecialiseerde) taken. Omdat veel Spark-verwerking wordt uitgevoerd met Behulp van PySpark, zorgt het enorme aantal Python-bibliotheken ervoor dat wat u ook moet doen, er waarschijnlijk een bibliotheek is om u te helpen.

In sommige gevallen moeten organisaties mogelijk meerdere omgevingen definiëren om een breed scala aan gegevensverwerkingstaken te ondersteunen. Elke omgeving definieert een specifieke runtimeversie en de bibliotheken die moeten worden geïnstalleerd om specifieke bewerkingen uit te voeren. Data engineers en wetenschappers kunnen vervolgens selecteren welke omgeving ze willen gebruiken met een Spark-pool voor een bepaalde taak.

Spark-runtimes Microsoft Fabric

Microsoft Fabric ondersteunt meerdere Spark-runtimes en blijft ondersteuning voor nieuwe runtimes toevoegen wanneer deze worden uitgebracht. U kunt de interface voor werkruimte-instellingen gebruiken om de Spark-runtime op te geven die standaardomgeving wordt gebruikt wanneer een Spark-pool wordt gestart.

Tip

Zie Apache Spark Runtimes in Fabric in de documentatie van Microsoft Fabric voor meer informatie over Spark-runtimes in Microsoft Fabric.

Omgevingen in Microsoft Fabric

U kunt aangepaste omgevingen maken in een Fabric-werkruimte, zodat u specifieke Spark-runtimes, -bibliotheken en -configuratie-instellingen kunt gebruiken voor verschillende gegevensverwerkingsbewerkingen.

Schermopname van de pagina Omgeving in Microsoft Fabric.

Wanneer u een omgeving maakt, kunt u het volgende doen:

  • Geef de Spark-runtime op die moet worden gebruikt.
  • Bekijk de ingebouwde bibliotheken die in elke omgeving zijn geïnstalleerd.
  • Installeer specifieke openbare bibliotheken vanuit de Python Package Index (PyPI).
  • Installeer aangepaste bibliotheken door een pakketbestand te uploaden.
  • Geef de Spark-pool op die door de omgeving moet worden gebruikt.
  • Geef spark-configuratie-eigenschappen op om standaardgedrag te overschrijven.
  • Upload resourcebestanden die beschikbaar moeten zijn in de omgeving.

Nadat u ten minste één aangepaste omgeving hebt gemaakt, kunt u deze opgeven als de standaardomgeving in de werkruimte-instellingen.

Tip

Zie Een omgeving in Microsoft Fabric maken, configureren en gebruiken in de documentatie van Microsoft Fabric voor meer informatie over het gebruik van aangepaste omgevingen in Microsoft Fabric.

Aanvullende Spark-configuratieopties

Spark-pools en -omgevingen beheren zijn de belangrijkste manieren waarop u Spark-verwerking in een Fabric-werkruimte kunt beheren. Er zijn echter enkele extra opties die u kunt gebruiken om verdere optimalisaties te maken.

Systeemeigen uitvoeringsengine

De systeemeigen uitvoeringsengine in Microsoft Fabric is een vectorized verwerkingsengine waarmee Spark-bewerkingen rechtstreeks op de lakehouse-infrastructuur worden uitgevoerd. Het gebruik van de systeemeigen uitvoeringsengine kan de prestaties van query's aanzienlijk verbeteren bij het werken met grote gegevenssets in Parquet- of Delta-bestandsindelingen.

Als u de systeemeigen uitvoeringsengine wilt gebruiken, kunt u deze inschakelen op omgevingsniveau of in een afzonderlijk notebook. Als u de systeemeigen uitvoeringsengine op omgevingsniveau wilt inschakelen, stelt u de volgende Spark-eigenschappen in de omgevingsconfiguratie in:

  • spark.native.enabled: true
  • spark.shuffle.manager: org.apache.spark.shuffle.sort.ColumnarShuffleManager

Als u de systeemeigen uitvoeringsengine voor een specifiek script of notebook wilt inschakelen, kunt u deze configuratie-eigenschappen instellen aan het begin van uw code, zoals deze:

%%configure 
{ 
   "conf": {
       "spark.native.enabled": "true", 
       "spark.shuffle.manager": "org.apache.spark.shuffle.sort.ColumnarShuffleManager" 
   } 
}

Modus voor hoge gelijktijdigheid

Wanneer u Spark-code uitvoert in Microsoft Fabric, wordt er een Spark-sessie gestart. U kunt de efficiëntie van het Spark-resourcegebruik optimaliseren met behulp van de modus voor hoge gelijktijdigheid om Spark-sessies te delen tussen meerdere gelijktijdige gebruikers of processen. Wanneer de modus voor hoge gelijktijdigheid is ingeschakeld voor notebooks, kunnen meerdere gebruikers code uitvoeren in notebooks die gebruikmaken van dezelfde Spark-sessie, terwijl isolatie van code wordt gegarandeerd om te voorkomen dat variabelen in het ene notebook worden beïnvloed door code in een ander notebook. U kunt ook de modus voor hoge gelijktijdigheid inschakelen voor Spark-taken, waardoor vergelijkbare efficiëntie wordt ingeschakeld voor gelijktijdige niet-interactieve Spark-scriptuitvoering.

U schakelt de modus voor hoge gelijktijdigheid in. Gebruik de sectie Data-engineer/Wetenschap van de interface voor werkruimte-instellingen.

Tip

Zie de modus Hoge gelijktijdigheid in Apache Spark for Fabric in de documentatie van Microsoft Fabric voor meer informatie over de modus voor hoge gelijktijdigheid.

Automatische MLFlow-logboekregistratie

MLFlow is een opensource-bibliotheek die wordt gebruikt in data science-workloads voor het beheren van machine learning-training en -modelimplementatie. Een belangrijke mogelijkheid van MLFlow is de mogelijkheid om modeltrainings- en beheerbewerkingen te registreren. Microsoft Fabric maakt standaard gebruik van MLFlow om machine learning-experimentactiviteiten impliciet te registreren zonder dat de data scientist expliciete code hoeft op te nemen om dit te doen. U kunt deze functionaliteit uitschakelen in de werkruimte-instellingen.

Spark-beheer voor een infrastructuurcapaciteit

Beheerders kunnen Spark-instellingen beheren op het niveau van een infrastructuurcapaciteit, zodat ze Spark-instellingen in werkruimten binnen een organisatie kunnen beperken en overschrijven.

Tip

Zie De instellingen voor data engineering en data science configureren en beheren voor Fabric-capaciteiten in de Documentatie van Microsoft Fabric voor meer informatie over het beheren van Spark-configuratie op het capaciteitsniveau Van infrastructuur.