Apache Spark-pools van Azure Synapse Analytics automatisch schalen
Met de functie voor automatische schaalaanpassing van Apache Spark for Azure Synapse Analytics-pool wordt het aantal knooppunten in een clusterexemplaar automatisch omhoog en omlaag geschaald. Tijdens het maken van een nieuwe Apache Spark voor Azure Synapse Analytics-pool kunnen maximaal 200 knooppunten worden ingesteld wanneer automatisch schalen is geselecteerd. Vervolgens worden de resourcevereisten van de belasting bewaakt en wordt het aantal knooppunten automatisch omhoog of omlaag geschaald. Er worden geen extra kosten in rekening gebracht voor deze functie.
Bewaking van metrische gegevens
Automatisch schalen bewaakt continu het Spark-exemplaar en verzamelt de volgende metrische gegevens:
Metrisch | Beschrijving |
---|---|
Totaal cpu in behandeling | Het totale aantal kernen dat nodig is om de uitvoering van alle in behandeling zijnde taken te starten. |
Totaal geheugen in behandeling | Het totale geheugen (in MB) dat nodig is om de uitvoering van alle in behandeling zijnde taken te starten. |
Totale gratis CPU | De som van alle ongebruikte kernen op de actieve knooppunten. |
Totaal vrij geheugen | De som van ongebruikt geheugen (in MB) op de actieve knooppunten. |
Gebruikt geheugen per knooppunt | De belasting op een knooppunt. Een knooppunt waarop 10 GB geheugen wordt gebruikt, wordt beschouwd als meer belasting dan een werkrol met 2 GB gebruikt geheugen. |
De bovenstaande metrische gegevens worden elke 30 seconden gecontroleerd. Automatische schaalaanpassing maakt beslissingen voor omhoog en omlaag schalen op basis van deze metrische gegevens.
Schaalvoorwaarden op basis van belasting
Wanneer de volgende voorwaarden worden gedetecteerd, geeft Automatisch schalen een schaalaanvraag uit:
Omhoog schalen | Omlaag schalen |
---|---|
De totale cpu in behandeling is langer dan het totale aantal gratis CPU's gedurende meer dan 1 minuut. | Het totale aantal cpu's dat in behandeling is, is gedurende meer dan 2 minuten minder dan de totale gratis CPU. |
Het totale geheugen in behandeling is langer dan het totale vrije geheugen gedurende meer dan 1 minuut. | Het totale geheugen in behandeling is minder dan het totale vrije geheugen gedurende meer dan 2 minuten. |
Voor omhoog schalen berekent de Azure Synapse Automatische schaalaanpassingsservice hoeveel nieuwe knooppunten er nodig zijn om te voldoen aan de huidige CPU- en geheugenvereisten en geeft vervolgens een aanvraag voor opschalen uit om het vereiste aantal knooppunten toe te voegen.
Voor omlaag schalen, op basis van het aantal uitvoerders, toepassingsmodellen per knooppunt, de huidige CPU- en geheugenvereisten, geeft automatisch schalen een aanvraag uit om een bepaald aantal knooppunten te verwijderen. De service detecteert ook welke knooppunten kandidaten zijn voor verwijdering op basis van de huidige taakuitvoering. Met de bewerking omlaag schalen worden eerst de knooppunten buiten gebruik gesteld en vervolgens uit het cluster verwijderd.
Notitie
Een opmerking over het bijwerken en afdwingen van het toepassen van configuratie voor automatische schaalaanpassing op een bestaande Spark-pool. Als nieuwe instelling forceren in Azure Portal of ForceApplySetting
PowerShell is ingeschakeld, worden alle bestaande Spark-sessies beëindigd en worden configuratiewijzigingen onmiddellijk toegepast. Als deze optie niet is geselecteerd, wordt de configuratie toegepast op de nieuwe Spark-sessies en worden bestaande sessies niet beëindigd.
Aan de slag
Een serverloze Apache Spark-pool maken met automatische schaalaanpassing
Als u de functie Automatisch schalen wilt inschakelen, voert u de volgende stappen uit als onderdeel van het normale proces voor het maken van een pool:
Schakel op het tabblad Basisinformatie het selectievakje Automatisch schalen inschakelen in.
Voer de gewenste waarden in voor de volgende eigenschappen:
- Minimum aantal knooppunten.
- Maximum aantal knooppunten.
Het initiële aantal knooppunten is het minimum. Deze waarde definieert de initiële grootte van het exemplaar wanneer deze wordt gemaakt. Het minimum aantal knooppunten mag niet minder zijn dan drie.
U kunt desgewenst dynamische toewijzing van uitvoerders inschakelen in scenario's waarin de uitvoerdersvereisten enorm verschillen in fasen van een Spark-taak of het volume van de verwerkte gegevens in tijd. Door dynamische toewijzing van uitvoerders in te schakelen, kunnen we naar behoefte capaciteit gebruiken.
Bij het inschakelen van dynamische toewijzing kan de taak het aantal uitvoerders schalen binnen min en maximum aantal opgegeven uitvoerders.
Apache Spark maakt configuratie van dynamische toewijzing van uitvoerders via code mogelijk, zoals hieronder:
%%configure -f
{
"conf" : {
"spark.dynamicAllocation.maxExecutors" : "6",
"spark.dynamicAllocation.enabled": "true",
"spark.dynamicAllocation.minExecutors": "2"
}
}
De standaardwaarden die via de code zijn opgegeven, overschrijven de waarden die zijn ingesteld via de gebruikersinterface.
Als voor uw taak in dit voorbeeld slechts 2 uitvoerders zijn vereist, worden er slechts 2 uitvoerders gebruikt. Wanneer de taak meer nodig heeft, wordt deze omhoog geschaald tot 6 uitvoerders (1 stuurprogramma, 6 uitvoerders). Wanneer de taak de uitvoerders niet nodig heeft, worden de uitvoerders buiten gebruik gesteld. Als het knooppunt niet nodig is, wordt het knooppunt vrijgemaakt.
Notitie
De maxExecutors reserveren het aantal geconfigureerde uitvoerders. Gezien het voorbeeld, zelfs als u slechts 2 gebruikt, wordt er 6 gereserveerd.
Bij het inschakelen van dynamische toewijzing worden uitvoerders dus omhoog of omlaag geschaald op basis van het gebruik van de uitvoerders. Dit zorgt ervoor dat de uitvoerders worden ingericht in overeenstemming met de behoeften van de taak die wordt uitgevoerd.
Aanbevolen procedures
Overweeg de latentie van omhoog of omlaag schalen van bewerkingen
Het kan 1 tot 5 minuten duren voordat een schaalbewerking is voltooid.
Voorbereiden op omlaag schalen
Tijdens het omlaag schalen van het exemplaar worden de knooppunten buiten gebruik gesteld, zodat er geen nieuwe uitvoerders op dat knooppunt kunnen starten.
De actieve taken blijven worden uitgevoerd en voltooid. De taken die in behandeling zijn, worden gepland als normaal met minder beschikbare knooppunten.
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 minder agressief omlaag schalen de voorkeur heeft, kan deze configuratie worden ingesteld op false.
Volgende stappen
Quickstart voor het instellen van een nieuwe Spark-pool : een Spark-pool maken