Apache Spark-poolconfiguraties in Azure Synapse Analytics

Een Spark-pool is een set metagegevens die de vereisten voor de rekenresource en de bijbehorende gedragskenmerken definieert 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 alleen kosten in rekening gebracht zodra een Spark-taak wordt uitgevoerd op de spark-doelpool 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 Isolated Compute biedt meer beveiliging voor Spark-rekenresources van niet-vertrouwde services door de fysieke rekenresource toe te wijzen aan één klant. De optie Voor geïsoleerde berekeningen is het meest geschikt voor workloads waarvoor een hoge mate van isolatie van de workloads van andere klanten vereist is om redenen die onder andere voldoen aan nalevings- en wettelijke vereisten. 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 optie voor geïsoleerde berekeningen kan worden in- of uitgeschakeld nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart. Als u deze functie in de toekomst verwacht in te schakelen, moet u ervoor zorgen dat uw Synapse-werkruimte wordt gemaakt in een geïsoleerde regio die wordt ondersteund voor rekenkracht.

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

Knooppunten

Apache Spark-poolinstantie 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. Op alle knooppunten worden services uitgevoerd zoals Node Agent en Yarn Node Manager. Op alle werkknooppunten wordt de Spark Executor-service uitgevoerd.

Knooppuntgrootten

Een Spark-pool kan worden gedefinieerd met knooppuntgrootten die variëren van een klein rekenknooppunt met 4 vCores en 32 GB geheugen tot een XXLarge-rekenknooppunt met 64 vCores en 432 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 432 GB
XXX Large (Geïsoleerde rekenkracht) 80 504 GB

Automatisch schalen

Met automatische schaalaanpassing voor Apache Spark-pools kunnen rekenresources automatisch omhoog en omlaag worden geschaald op basis van de hoeveelheid activiteit. Wanneer de functie voor automatisch schalen is ingeschakeld, stelt u het minimum- en maximumaantal knooppunten in dat moet worden geschaald. Wanneer de functie voor automatisch schalen is uitgeschakeld, blijft het aantal knooppunten ingesteld. 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 groep wordt geïnstantieerd. Spark-taken schrijven uitvoer van willekeurige toewijzingen, willekeurige gegevens en gemorste gegevens naar lokale VM-schijven. Voorbeelden van bewerkingen die gebruikmaken van een lokale schijf zijn sorteren, opslaan in de cache en persistent. Wanneer tijdelijke VM-schijfruimte op is, kunnen Spark-taken mislukken vanwege de fout 'Onvoldoende schijfruimte' (java.io.IOException: er is geen ruimte meer op het apparaat). Met 'Onvoldoende schijfruimte'-fouten, veel van de werklast om te voorkomen dat taken mislukken verschuivingen 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 flink 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 vallen en opstaan en ze moeten de interne metrische gegevens van Spark begrijpen om de juiste beslissing te nemen.
  • Verspilde resources. Omdat productietaken verschillende hoeveelheden gegevens kunnen verwerken, kunnen Spark-taken niet-deterministisch mislukken als resources niet te veel zijn ingericht. Denk bijvoorbeeld aan het probleem van scheeftrekken van gegevens, waardoor een paar knooppunten meer schijfruimte nodig hebben dan andere. Op dit moment krijgt elk knooppunt in een cluster in Synapse dezelfde 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 waarin 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 (enkele seconden).

U hoeft geen actie te ondernemen, en als gevolg hiervan ziet u minder taakfouten.

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 opslag in elastische pools.

Automatisch onderbreken

Met de functie automatisch onderbreken worden resources na een inactieve periode vrijgegeven, waardoor de totale kosten van een Apache Spark-pool worden verlaagd. 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, ongeacht of 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