Dela via


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:

    • När dina jobb förväntas köras enligt fasta scheman och under en förutsägbar varaktighet eller när du förväntar dig låg användning under specifika tider på dagen. Till exempel test- och utvecklingsmiljöer efter arbetstid eller vid dagens slut.

      Skärmbild som visar hur du väljer 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.

      Skärmbild som visar hur du väljer belastningsbaserad skalning.

      Med det nya, konfigurera skalningsregelalternativet kan du nu anpassa skalningsreglerna.

      Skärmbild som visar hur du konfigurerar skalningsregel i belastningsbaserad skalning.

      Skärmbild som visar hur du lägger till regler i konfigurera skalningsregler för belastningsbaserad skalning.

      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-periodeller 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

  1. 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.

  2. Se följande bild och steg i listan över hur du lägger till rolltilldelning

    Skärmbild som visar hur du lägger till rolltilldelning.

  3. Välj lägga till rolltilldelning,

    1. Tilldelningstyp: Privilegierade administratörsroller
    2. Roll: Ägare eller Deltagare
    3. Medlemmar: Välj Hanterad identitet och välj den användartilldelade hanterade identiteten, som gavs under fasen för klusterskapande.
    4. Tilldela rollen.

Skapa ett kluster med schemabaserad automatisk skalning

  1. 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.

  2. På fliken Konfiguration aktiverar du automatisk skalning växla.

  3. Välj schemabaserad autoskalning

  4. Välj tidszonen och klicka sedan på + Lägg till regel

  5. Välj de veckodagar som det nya villkoret ska gälla för.

  6. Redigera den tid villkoret ska börja gälla och antalet noder som klustret ska skalas till.

    Skärmbild som visar hur du kommer igång med schemabaserad autoskalning.

    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

  1. 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.

  2. På fliken Konfiguration aktiverar du Automatisk Skalning omkopplare.

  3. Välj autoskalning baserad på inläsning

  4. Beroende på typen av arbetsbelastning har du möjlighet att lägga till skonsam timeout för avaktivering, samt nedkylningsperiod.

  5. Välj minsta och högsta noder, och om det behövs konfigurera skalningsreglerna för att anpassa automatisk skalning efter dina behov.

    Skärmbild som visar hur du kommer igång med belastningsbaserad autoskalning.

    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

Skärmbild som visar hur du pausar autoskalning.

Du kan återuppta autoskalningsåtgärderna när du vill.

Skärmbild som visar hur du återupptar automatisk skalning.

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.

Skärmbild som visar hur du exporterar eller importerar konfigurationer från autoskalning (automatisk skalning).

Ö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.

Skärmbild som visar klusterstatus.

Om du vill visa det aktuella antalet noder i klustret går du till diagrammet Klusterstorlek på sidan Översikt för klustret.

Skärmbild som visar klusterstorlek.

Å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.

Skärmbild som visar åtgärdshistorik för klustret i aktivitetsloggar.

Ytterligare resurser

Manuell skalning – Azure HDInsight på AKS