Skala HDInsight automatiskt på AKS-kluster
Viktig
Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer med det här meddelandet.
Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.
Viktig
Den här funktionen är för närvarande i förhandsversion. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller flera juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. För frågor och funktionsförslag, skicka en begäran på AskHDInsight med informationen och följ oss för fler uppdateringar om Azure HDInsight Community.
Dimensioneringen av varje kluster för att uppfylla jobbprestanda och hålla kostnaderna under kontroll i förväg är alltid knepig och svår att avgöra! En av de lukrativa fördelarna med att bygga ett data lakehouse i molnet är dess elasticitet, vilket innebär användning av autoskalningsfunktionen för att maximera användningen av tillgängliga resurser. Automatisk skalning med Kubernetes är en nyckel för att upprätta ett kostnadsoptimerad ekosystem. Med varierande användningsmönster i alla företag kan det finnas variationer i klusterbelastningar över tid som kan leda till att kluster underetableras (dåliga prestanda) eller överetableras (onödiga kostnader på grund av inaktiva resurser).
Autoskalningsfunktionen som erbjuds i HDInsight på AKS kan automatiskt öka eller minska antalet arbetsnoder i klustret. Automatisk skalning använder klustermått och skalningsprincip som används av kunderna.
Den här funktionen passar bra för verksamhetskritiska arbetsbelastningar, som kan ha särskilda krav eller behov.
- Varierande eller oförutsägbara trafikmönster och kräver serviceavtal för höga prestanda och skalning eller
- Förutsatt schema för att nödvändiga arbetsnoder ska vara tillgängliga för att framgångsrikt köra jobben i klustret.
Automatisk skalning med HDInsight i AKS-kluster gör klustren kostnadseffektiva och elastiska i Azure.
Med automatisk skalning kan kunder skala ned kluster utan att påverka arbetsbelastningar. Den är aktiverad med avancerade funktioner som smidig avveckling och nedkylningsperiod. Dessa funktioner gör det möjligt för användare att göra välgrundade val vid tillägg och borttagning av noder baserat på klustrets aktuella belastning.
Så här fungerar det
Den här funktionen fungerar genom att skala antalet noder inom förinställda gränser baserat på klustermått eller ett definierat schema för uppskalnings- och nedskalningsåtgärder. Det finns två typer av villkor för att utlösa autoskalningshändelser: tröskelvärdesbaserade utlösare för olika klusterprestandamått (kallas belastningsbaserad skalning) och tidsbaserade utlösare (kallas schemabaserad skalning).
Belastningsbaserad skalning ändrar antalet noder i klustret, inom ett intervall som du anger, för att säkerställa optimal CPU-användning och minimera driftskostnaderna.
Schemabaserad skalning ändrar antalet noder i klustret baserat på ett schema med uppskalnings- och nedskalningsåtgärder.
Anmärkning
Automatisk skalning stöder inte ändring av SKU-typen för ett befintligt kluster.
Klusterkompatibilitet
I följande tabell beskrivs de klustertyper som är kompatibla med funktionen Automatisk skalning och vad som är tillgängligt eller planerat.
Arbetsbörda | Belastningsbaserad | Schemabaserat |
---|---|---|
Flink | Planerad | Ja |
Trino | Ja** | Ja** |
Gnista | Ja** | Ja** |
Försiktig avveckling kan konfigureras.
Skalningsmetoder
Schemabaserad skalning:
Belastningsbaserad skalning:
När belastningsmönstren varierar avsevärt och oförutsägbart under dagen, till exempel orderdatabearbetning med slumpmässiga variationer i belastningsmönster baserat på olika faktorer.
Med det nya, konfigurera skalningsregelalternativet kan du nu anpassa skalningsreglerna.
Tips
- Uppskalningsregler har företräde när en eller flera regler utlöses. Även om bara en av reglerna för uppskalning tyder på att klustret är underförsörjda, kommer klustret försöka skala upp. För att nedskalning ska ske ska ingen uppskalningsregel utlösas.
Belastningsbaserade skalningsvillkor
När följande villkor identifieras utfärdar automatisk skalning en skalningsbegäran
Skala upp | Skala ned |
---|---|
Allokerade kärnor är större än 80% för 5-minuters pollningsintervall (1-minuts kontrollperiod) | Allokerade kärnor är mindre än eller lika med 20% för 5 minuters avsökningsintervall (1 minuts kontrollperiod) |
Vid uppskalning utfärdar automatisk skalning en uppskalningsbegäran för att lägga till det nödvändiga antalet noder. Uppskalningen baseras på hur många nya arbetsnoder som behövs för att uppfylla de aktuella processor- och minneskraven. Det här värdet är begränsat till det maximala antalet arbetsnoder som angetts.
Vid nedskalning utfärdar automatisk skalning en begäran om att ta bort vissa noder. Övervägandena för nedskalning omfattar antalet poddar per nod, aktuella processor- och minneskrav och arbetsnoder, som är kandidater för borttagning baserat på aktuell jobbkörning. Skalningsåtgärden inaktiverar först noderna och tar sedan bort dem från klustret.
Viktig
Regelmotorn för automatisk skalning rensar proaktivt gamla händelser var 30:e minut för att optimera systemminnet. Därför finns det en övre gräns på 30 minuter för skalningsregelintervallet. För att säkerställa konsekvent och tillförlitlig utlösande av skalningsåtgärder är det absolut nödvändigt att ange skalningsregelintervallet till ett värde som är mindre än gränsen. Genom att följa den här riktlinjen kan du garantera en smidig och effektiv skalningsprocess samtidigt som du effektivt hanterar systemresurser.
Klustermått
Automatisk skalning övervakar klustret kontinuerligt och samlar in följande mått för belastningsbaserad autoskalning:
Klustermått som är tillgängliga för skalning
Metrik | Beskrivning |
---|---|
Procentandel tillgängliga kärnor | Det totala antalet tillgängliga kärnor i klustret jämfört med det totala antalet kärnor i klustret. |
Tillgängligt minne i procent | Det totala minnet (i MB) som är tillgängligt i klustret jämfört med den totala mängden minne i klustret. |
Procent för allokerade kärnor | Det totala antalet kärnor som allokerats i klustret jämfört med det totala antalet kärnor i klustret. |
Allokerat minne i procent | Mängden minne som allokeras i klustret jämfört med den totala mängden minne i klustret. |
Som standardinställning kontrolleras de ovan nämnda mätvärdena var 300 sekunder. Det går även att konfigurera när du anpassar avsökningsintervallet med alternativet anpassa autoskalning. Automatisk skalning fattar beslut om uppskalning eller nedskalning baserat på dessa mått.
Notera
Som standard använder automatisk skalning standardresurskalkylatorn för YARN för Apache Spark. Belastningsbaserad skalning är tillgänglig för Apache Spark-kluster.
Smidig avveckling
Företag behöver sätt att uppnå petabyteskalning med automatisk skalning och inaktivera resurser på ett smidigt sätt när de inte längre behövs. I ett sådant scenario är det praktiskt med en smidig inaktiveringsfunktion.
Med en smidig avaktivering kan jobb slutföras även efter att autoskalning har utlöst avaktiveringen av arbetsnoderna. Med den här funktionen kan noder fortsätta att etableras tills jobben har slutförts.
Trino: Arbetare har en skonsam avaktivering aktiverad som standard. Med koordinatorn kan arbetstagaren avsluta sina uppgifter under en konfigurerad tid innan arbetaren tas bort från klustret. Du kan konfigurera tidsgränsen antingen med hjälp av den interna Trino-parametern
shutdown.grace-period
eller på konfigurationssidan för Azure Portal-tjänsten.Apache Spark: Att minska kapaciteten kan påverka eller stoppa jobb som körs i klustret. Om du aktiverar Graciös Avaktivering-inställningar på Azure-portalen, innehåller den Graciös Avaktivering av YARN-noder och ser till att allt arbete som pågår på en arbetsnod är slutfört innan noden tas bort från HDInsight i AKS-klustret.
Nedkylningsperiod
För att undvika kontinuerliga uppskalningsåtgärder väntar autoskalningsmotorn på ett konfigurerbart intervall innan en annan uppsättning uppskalningsåtgärder initieras. Standardvärdet är inställt på 180 sekunder
Notera
- I anpassade skalningsregler kan ingen regelutlösare ha ett utlösarintervall som är större än 30 minuter. När en automatisk skalningshändelse inträffar är tiden att vänta innan en annan skalningspolicy tillämpas.
- Nedkylningsperioden bör vara större än principintervallet, så att klustermåtten kan återställas.
Sätta igång
För att autoskalning ska fungera måste du tilldela ägare eller deltagare behörighet till MSI (används när klustret skapas) på klusternivå med hjälp av IAM i den vänstra rutan.
Se följande bild och steg i listan över hur du lägger till rolltilldelning
Välj lägga till rolltilldelning,
- Tilldelningstyp: Privilegierade administratörsroller
- Roll: Ägare eller Deltagare
- Medlemmar: Välj Hanterad identitet och välj den användartilldelade hanterade identiteten, som gavs under fasen för klusterskapande.
- Tilldela rollen.
Skapa ett kluster med schemabaserad automatisk skalning
När klusterpoolen har skapats skapar du ett nytt kluster med önskad arbetsbelastning (i klustertypen) och slutför de andra stegen som en del av den normala processen för att skapa kluster.
På fliken Konfiguration aktiverar du automatisk skalning växla.
Välj schemabaserad autoskalning
Välj tidszonen och klicka sedan på + Lägg till regel
Välj de veckodagar som det nya villkoret ska gälla för.
Redigera den tid villkoret ska börja gälla och antalet noder som klustret ska skalas till.
Obs
- Användaren bör ha rollen "ägare" eller "deltagare" i klustrets MSI för att autoskalning ska fungera.
- Standardvärdet definierar den ursprungliga storleken på klustret när det skapas.
- Skillnaden mellan två scheman är inställd på standardvärdet 30 minuter.
- Tidsvärdet följer 24-timmarsformatet
- Om ett kontinuerligt fönster är längre än 24 timmar över dagar måste du ange automatiskt skalningsschema över dagar, och autoskalning förutsätter 23:59 som 00:00 (med samma antal noder) som sträcker sig över två dagar från 22:00 till 23:59, 00:00 till 02:00 som 22:00 till 02:00.
- Schemana anges som standard i Coordinated Universal Time (UTC). Du kan alltid uppdatera till tidszon som motsvarar din lokala tidszon i listrutan som är tillgänglig. När du befinner dig i en tidszon som observerar sommartid, justeras inte schemat automatiskt, du måste hantera schemauppdateringarna i enlighet med detta.
Skapa ett kluster med belastningsbaserad automatisk skalning
När klusterpoolen har skapats skapar du ett nytt kluster med önskad arbetsbelastning (i klustertypen) och slutför de andra stegen som en del av den normala processen för att skapa kluster.
På fliken Konfiguration aktiverar du Automatisk Skalning omkopplare.
Välj autoskalning baserad på inläsning
Beroende på typen av arbetsbelastning har du möjlighet att lägga till skonsam timeout för avaktivering, samt nedkylningsperiod.
Välj minsta och högsta noder, och om det behövs konfigurera skalningsreglerna för att anpassa automatisk skalning efter dina behov.
Tips
- Din prenumeration har en kapacitetskvot för varje region. Det totala antalet kärnor i huvudnoderna och maximalt antal arbetsnoder får inte överskrida kapacitetskvoten. Den här kvoten är dock en mjuk gräns; du kan alltid skapa ett supportärende för att enkelt få den ökad.
- Om du överskrider den totala kärnkvotgränsen får du ett felmeddelande om
The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores)
. - Uppskalningsregler har företräde när en eller flera regler utlöses. Även om bara en av skalningsreglerna tyder på att klustret är underförsörjd, så kommer klustret att försöka skala upp. För att nedskalning ska ske ska ingen uppskalningsregel utlösas.
- I offentlig förhandsversion stöder HDInsight på AKS upp till 500 noder i ett kluster.
Skapa ett kluster med en Resource Manager-mall
Schemalagd baserad automatisk skalning
Du kan skapa ett HDInsight-kluster på AKS med schemabaserad autoskalning genom att använda en Azure Resource Manager-mall. Detta görs genom att lägga till en autoskalning i avsnittet clusterProfile -> autoscaleProfile.
Autoskalningsnoden innehåller en upprepning med en tidszon och ett schema som beskriver när ändringen sker. En fullständig Resource Manager-mall finns i JSON-exempel
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "ScheduleBased",
"gracefulDecommissionTimeout": 60,
"scheduleBasedConfig": {
"schedules": [
{
"days": [
"Monday",
"Tuesday",
"Wednesday"
],
"startTime": "09:00",
"endTime": "10:00",
"count": 2
},
{
"days": [
"Sunday",
"Saturday"
],
"startTime": "12:00",
"endTime": "22:00",
"count": 5
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "22:00",
"endTime": "23:59",
"count": 6
},
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"startTime": "00:00",
"endTime": "05:00",
"count": 6
}
],
"timeZone": "UTC",
"defaultCount": 110
}
}
}
Tips
- Du måste ange scheman som inte är i konflikt med ARM-distributioner för att undvika skalningsfel.
Belastningsbaserad automatisk skalning
Du kan skapa en HDInsight på AKS-kluster med belastningsbaserad autoskalning med hjälp av en Azure Resource Manager-mall genom att lägga till en autoskalning i avsnittet clusterProfile –> autoscaleProfile.
Autoskale-noden innehåller
- ett avsökningsintervall, nedkylningsperiod,
- smidig avveckling
- minsta och högsta noder.
- standardtröskelregler,
- skalningsmått som beskriver när ändringen sker.
En fullständig Resource Manager-mall finns i JSON-exempel på följande sätt
{
"autoscaleProfile": {
"enabled": true,
"autoscaleType": "LoadBased",
"gracefulDecommissionTimeout": 60,
"loadBasedConfig": {
"minNodes": 2,
"maxNodes": 157,
"pollInterval": 300,
"cooldownPeriod": 180,
"scalingRules": [
{
"actionType": "scaleup",
"comparisonRule": {
"threshold": 80,
"operator": " greaterThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
},
{
"actionType": "scaledown",
"comparisonRule": {
"threshold": 20,
"operator": " lessThanOrEqual"
},
"evaluationCount": 1,
"scalingMetric": "allocatedCoresPercentage"
}
]
}
}
}
Använda REST-API:et
Om du vill aktivera eller inaktivera automatisk skalning i ett kluster som körs med hjälp av REST-API:et gör du en PATCH-begäran till slutpunkten För automatisk skalning: https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}
- Använd lämpliga parametrar i databördan för begäran. Json-nyttolasten kan användas för att aktivera automatisk skalning.
- Använd payload (autoscaleProfile: null) eller använd flaggan (enabled, false) för att inaktivera autoskalering.
- Titta på JSON-exemplen som nämns i ovanstående steg för vägledning.
Pausa automatisk skalning för ett kluster som körs
Vi har introducerat pausfunktionen i automatisk skalning. Med hjälp av Azure-portalen kan du nu pausa automatisk skalning i ett kluster som körs. Diagrammet nedan visar hur du väljer pausa och återuppta autoskalning
Du kan återuppta autoskalningsåtgärderna när du vill.
Tips
När du konfigurerar flera scheman och pausar autoskalningen utlöser det inte nästa schema. Antalet noder förblir detsamma, även om noderna är i ett inaktiverat tillstånd.
Kopiera konfigurationer för automatisk skalning
Med hjälp av Azure-portalen kan du nu kopiera samma autoskalningskonfigurationer för samma klusterform i klusterpoolen. Du kan använda den här funktionen och exportera eller importera samma konfigurationer.
Övervaka aktiviteter för automatisk skalning
Klusterstatus
Klusterstatusen i Azure-portalen kan hjälpa dig att övervaka aktiviteter för automatisk skalning. Alla klusterstatusmeddelanden som du kan se förklaras i listan.
Klusterstatus | Beskrivning |
---|---|
Lyckades | Klustret fungerar normalt. Alla tidigare aktiviteter för automatisk skalning har slutförts. |
Accepterad | Klusteråtgärden (till exempel uppskalning) godkänns i väntan på att åtgärden ska slutföras. |
Misslyckades | Det innebär att en aktuell åtgärd misslyckades på grund av någon anledning, klustret kanske inte fungerar. |
Annullerad | Den aktuella åtgärden har avbrutits. |
Om du vill visa det aktuella antalet noder i klustret går du till diagrammet Klusterstorlek på sidan Översikt för klustret.
Åtgärdshistorik
Du kan visa historiken för klusterskalning och nedskalning som en del av klustermåtten. Du kan också visa en lista över alla skalningsåtgärder under den senaste dagen, veckan eller andra perioder.
Ytterligare resurser