Configuraties van Apache Spark-pools in Azure Synapse Analytics
Een Spark-pool is een set metagegevens die de vereisten voor rekenresources 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 pas kosten in rekening gebracht zodra een Spark-taak is uitgevoerd op 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 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
- VS - zuid-centraal
- US Gov - 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.
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 XXLarge-rekenknooppunt met 64 vCore en 432 GB geheugen per knooppunt. Knooppuntgrootten kunnen worden gewijzigd nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart.
Tekengrootte | vCore | Geheugen |
---|---|---|
Klein | 4 | 32 GB |
Gemiddeld | 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
Automatische schaalaanpassing voor Apache Spark-pools maakt het mogelijk om rekenresources automatisch omhoog en omlaag te 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 knooppunten dat is ingesteld vast. Deze instelling kan worden gewijzigd nadat de pool is gemaakt, hoewel het exemplaar mogelijk opnieuw moet worden opgestart.
Opslag voor 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 willekeurige toewijzingsuitvoer, willekeurige gegevens en gegevens overlopen naar lokale VM-schijven. Voorbeelden van bewerkingen die lokale schijf kunnen gebruiken, zijn sorteren, cachen en persistent maken. Wanneer tijdelijke VM-schijfruimte opraakt, kunnen Spark-taken mislukken vanwege de fout 'Onvoldoende schijfruimte' (java.io.IOException: geen ruimte meer op het apparaat). Met '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 een proefversie en fout en moeten de interne metrische gegevens van Spark begrijpen om de juiste beslissing te nemen.
- Verspilde middelen. Omdat productietaken verschillende hoeveelheden 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. Op dit moment 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 bij het uitvoeren van taken. 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 opslag toe te voegen (duurt enkele seconden).
Er is geen actie voor u vereist, plus dat er minder taakfouten optreden als gevolg hiervan.
Notitie
Azure Synapse Elastic-poolopslag bevindt zich momenteel in openbare preview. Tijdens de openbare preview worden er geen kosten in rekening gebracht voor het gebruik van elastische poolopslag.
Automatisch onderbreken
Met de functie voor automatisch onderbreken worden resources na een ingestelde periode inactief vrijgegeven, 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 voor automatisch onderbreken is onafhankelijk van de functie voor automatisch schalen. Resources kunnen worden onderbroken, ongeacht 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.