Configuraties van Apache Spark-pools in Azure Synapse Analytics

Een Spark-pool is een set metagegevens waarmee de vereisten voor rekenresources en de bijbehorende gedragskenmerken worden gedefinieerd wanneer een Spark-exemplaar wordt geïnstantieerd. Deze kenmerken omvatten, maar zijn niet beperkt tot naam, aantal knooppunten, knooppuntgrootte, schaalgedrag en time to live. Een Spark-pool op zichzelf verbruikt geen resources. Er worden geen kosten gemaakt voor het maken van Spark-pools. Er worden slechts kosten in rekening gebracht zodra een Spark-taak wordt uitgevoerd in de doel-Spark-pool en het Spark-exemplaar op aanvraag wordt geïnstantieerd.

In Get started with Spark pools in Synapse Analytics (Aan de slag met Spark-pools in Synapse Analytics) kunt u lezen hoe u een Spark-pool maakt en alle bijbehorende eigenschappen bekijkt

Geïsoleerde rekenkracht

De optie Geïsoleerde berekening biedt meer beveiliging voor Spark-rekenresources van niet-vertrouwde services door de fysieke rekenresource aan één klant toe te wijzen. Geïsoleerde berekeningsoptie is het meest geschikt voor workloads die een hoge mate van isolatie van workloads van andere klanten vereisen om redenen die onder meer voldoen aan nalevings- en regelgevingsvereisten. De optie Compute isoleren is alleen beschikbaar met de knooppuntgrootte XXXLarge (80 vCPU/504 GB) en is alleen beschikbaar in de volgende regio's. De geïsoleerde rekenoptie kan worden ingeschakeld of uitgeschakeld nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart. Als u verwacht deze functie in de toekomst in te schakelen, moet u ervoor zorgen dat uw Synapse-werkruimte wordt gemaakt in een geïsoleerde ondersteunde regio voor rekenkracht.

  • VS - oost
  • West US 2
  • South Central US
  • VS (overheid) - Arizona
  • VS (overheid) - Virginia

Knooppunten

Het Apache Spark-poolexemplaren bestaat uit één hoofdknooppunt en twee of meer werkknooppunten met minimaal drie knooppunten in een Spark-exemplaar. Het hoofdknooppunt voert extra beheerservices uit, zoals Livy, Yarn Resource Manager, Zookeeper en het Spark-stuurprogramma. Alle knooppunten voeren services uit, zoals Node Agent en Yarn Node Manager. Alle werkknooppunten voeren de Spark Executor-service uit.

Grootten van knooppunten

Een Spark-pool kan worden gedefinieerd met knooppuntgrootten die variëren van een klein rekenknooppunt met 4 vCore en 32 GB geheugen tot een XXLarge-rekenknooppunt met 64 vCore en 512 GB geheugen per knooppunt. Knooppuntgrootten kunnen worden gewijzigd nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart.

Grootte vCore Geheugen
Klein 4 32 GB
Normaal 8 64 GB
Groot 16 128 GB
XLarge 32 256 GB
XXLarge 64 512 GB
XXX Large (Geïsoleerde compute) 80 504 GB

Automatisch schalen

Met automatische schaalaanpassing voor Apache Spark-pools kunt u rekenresources automatisch omhoog en omlaag schalen op basis van de hoeveelheid activiteit. Wanneer de functie voor automatisch schalen is ingeschakeld, stelt u het minimum en maximum aantal knooppunten in op schaal. Wanneer de functie voor automatisch schalen is uitgeschakeld, blijft het aantal set knooppunten vast. Deze instelling kan worden gewijzigd nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart.

Opslag van elastische pools

Apache Spark-pools bieden nu ondersteuning voor opslag van elastische pools. Met elastische poolopslag kan de Spark-engine tijdelijke opslag van werkknooppunten bewaken en indien nodig extra schijven koppelen. Apache Spark-pools maken gebruik van tijdelijke schijfopslag terwijl de pool wordt geïnstantieerd. Spark-taken schrijven shuffle-toewijzingsuitvoer, willekeurige gegevens en gegevens overlopen naar lokale VM-schijven. Voorbeelden van bewerkingen die gebruikmaken van lokale schijf zijn sorteren, cachen en behouden. Wanneer de tijdelijke VM-schijfruimte is verstreken, kunnen Spark-taken mislukken vanwege de fout 'Onvoldoende schijfruimte' (java.io.IOException: geen ruimte meer over op het apparaat). Met fouten 'Onvoldoende schijfruimte' wordt veel van de last om te voorkomen dat taken mislukken naar de klant om de Spark-taken opnieuw te configureren (bijvoorbeeld het aantal partities aanpassen) of clusters (bijvoorbeeld meer knooppunten toevoegen aan het cluster). Deze fouten zijn mogelijk niet consistent en de gebruiker kan sterk experimenteren door productietaken uit te voeren. Dit proces kan duur zijn voor de gebruiker in meerdere dimensies:

  • Verspilde tijd. Klanten moeten intensief experimenteren met taakconfiguraties via proefversie en fout en moeten de interne metrische gegevens van Spark begrijpen om de juiste beslissing te nemen.
  • Verspilde resources. Omdat productietaken verschillende hoeveelheid gegevens kunnen verwerken, kunnen Spark-taken niet-deterministisch mislukken als resources niet te veel worden ingericht. Denk bijvoorbeeld aan het probleem van scheeftrekken van gegevens, wat kan leiden tot een paar knooppunten waarvoor meer schijfruimte nodig is dan andere. Momenteel in Synapse krijgt elk knooppunt in een cluster dezelfde grootte van schijfruimte en is het vergroten van de schijfruimte op alle knooppunten geen ideale oplossing en leidt dit tot enorme verspilling.
  • Vertraging in taakuitvoering. In het hypothetische scenario waarbij we het probleem oplossen door knooppunten automatisch te schalen (ervan uitgaande dat de kosten geen probleem zijn voor de eindklant), is het toevoegen van een rekenknooppunt nog steeds duur (duurt een paar minuten) in plaats van het toevoegen van opslag (duurt een paar seconden).

Er is geen actie voor u vereist, plus dat er als gevolg hiervan minder taakfouten optreden.

Notitie

Azure Synapse opslag voor elastische pools bevindt zich momenteel in openbare preview. Tijdens de openbare preview worden er geen kosten in rekening gebracht voor het gebruik van elastische poolopslag.

Automatische pauze

Met de functie automatisch onderbreken worden resources na een ingestelde inactiviteitsperiode uitgebracht, waardoor de totale kosten van een Apache Spark-pool worden verminderd. Het aantal minuten inactieve tijd kan worden ingesteld zodra deze functie is ingeschakeld. De functie automatisch onderbreken is onafhankelijk van de functie voor automatisch schalen. Resources kunnen worden onderbroken of de automatische schaalaanpassing is ingeschakeld of uitgeschakeld. Deze instelling kan worden gewijzigd nadat de pool is gemaakt, hoewel actieve sessies opnieuw moeten worden gestart.

Volgende stappen