Azure HDInsight-clusters automatisch schalen
Met de gratis functie Automatische schaalaanpassing van Azure HDInsight kunt u het aantal werkknooppunten in uw cluster automatisch verhogen of verlagen op basis van de metrische gegevens van het cluster en het schaalbeleid dat door de klanten is gebruikt. De functie Automatisch schalen werkt door het aantal knooppunten binnen vooraf ingestelde limieten te schalen op basis van metrische prestatiegegevens of een gedefinieerd schema van bewerkingen voor omhoog en omlaag schalen
Uitleg
De functie Automatische schaalaanpassing maakt gebruik van twee soorten voorwaarden om schaalgebeurtenissen te activeren: drempelwaarden voor verschillende metrische gegevens over clusterprestaties (schaal op basis van belasting genoemd) en triggers op basis van tijd ( schaal op basis van planning genoemd). Schalen op basis van belasting wijzigt het aantal knooppunten in uw cluster, binnen een bereik dat u instelt, om een optimaal CPU-gebruik te garanderen en de lopende kosten te minimaliseren. Schalen op basis van een planning wijzigt het aantal knooppunten in uw cluster op basis van een schema van bewerkingen voor omhoog en omlaag schalen.
De volgende video biedt een overzicht van de uitdagingen die automatisch schalen oplost en hoe u hiermee de kosten met HDInsight kunt beheersen.
Schalen op basis van belasting of planning kiezen
Schalen op basis van een planning kan worden gebruikt:
- Wanneer van uw taken wordt verwacht dat ze worden uitgevoerd volgens vaste planningen en voor een voorspelbare duur of wanneer u een laag gebruik verwacht tijdens specifieke tijden van de dag, bijvoorbeeld test- en ontwikkelomgevingen in postwerktijden, taken aan het einde van de dag.
Schalen op basis van belasting kan worden gebruikt:
- Wanneer de belastingspatronen gedurende de dag aanzienlijk en onvoorspelbaar zijn. Bijvoorbeeld gegevensverwerking bestellen met willekeurige schommelingen in belastingspatronen op basis van verschillende factoren
Metrische clustergegevens
Automatisch schalen bewaakt continu het cluster en verzamelt de volgende metrische gegevens:
Metrisch | Beschrijving |
---|---|
Totaal cpu-verbruik in behandeling | Het totale aantal kernen dat nodig is om de uitvoering van alle containers in behandeling te starten. |
Totaal geheugen in behandeling | Het totale geheugen (in MB) dat nodig is om de uitvoering van alle containers in behandeling te starten. |
Totaal gratis CPU | De som van alle ongebruikte kernen op de actieve werkknooppunten. |
Totaal vrij geheugen | De som van het ongebruikte geheugen (in MB) op de actieve werkknooppunten. |
Gebruikt geheugen per knooppunt | De belasting van een werkknooppunt. Een werkknooppunt waarop 10 GB geheugen wordt gebruikt, wordt beschouwd als een werkrol met 2 GB gebruikt geheugen. |
Aantal toepassingsmodellen per knooppunt | Het aantal AM-containers (Application Master) dat wordt uitgevoerd op een werkknooppunt. Een werkknooppunt dat als host fungeert voor twee AM-containers, wordt belangrijker geacht dan een werkknooppunt dat als host fungeert voor zero AM-containers. |
De bovenstaande metrische gegevens worden elke 60 seconden gecontroleerd. Automatisch schalen maakt beslissingen over 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 die in behandeling is, is langer dan 3-5 minuten groter dan de totale vrije CPU. | De totale CPU die in behandeling is, is minder dan de totale gratis CPU gedurende meer dan 3-5 minuten. |
Het totale geheugen in behandeling is langer dan 3-5 minuten groter dan het totale beschikbare geheugen. | Totaal geheugen in behandeling is minder dan de totale hoeveelheid vrije geheugen gedurende meer dan 3-5 minuten. |
Voor omhoog schalen geeft Automatisch schalen een aanvraag voor omhoog schalen uit om het vereiste aantal knooppunten toe te voegen. Het omhoog schalen is gebaseerd op het aantal nieuwe werkknooppunten dat nodig is om te voldoen aan de huidige CPU- en geheugenvereisten.
Voor omlaag schalen geeft Automatisch schalen een aanvraag uit om sommige knooppunten te verwijderen. De schaal omlaag is gebaseerd op het aantal AM-containers (Application Master) per knooppunt. En de huidige CPU- en geheugenvereisten. De service detecteert ook welke knooppunten in aanmerking komen voor verwijdering op basis van de huidige taakuitvoering. Met de bewerking omlaag schalen worden de knooppunten eerst buiten gebruik gesteld en vervolgens uit het cluster verwijderd.
Overwegingen bij het aanpassen van de grootte van Ambari DB voor automatisch schalen
Het wordt aanbevolen om de juiste grootte van Ambari DB te gebruiken om de voordelen van automatische schaalaanpassing te profiteren. Klanten moeten de juiste DB-laag gebruiken en de aangepaste Ambari-database gebruiken voor grote clusters. Lees de aanbevelingen voor database- en hoofdknooppuntgrootte.
Clustercompatibiliteit
Belangrijk
De functie voor automatisch schalen van Azure HDInsight is op 7 november 2019 algemeen beschikbaar gekomen voor Spark- en Hadoop-clusters en bevat verbeteringen die niet beschikbaar zijn in de preview-versie van de functie. Als u vóór 7 november 2019 een Spark-cluster hebt gemaakt en u de functie voor automatisch schalen wilt gebruiken in uw cluster, is het aanbevolen pad om een nieuw cluster te maken en automatisch schalen in te schakelen in het nieuwe cluster.
Automatisch schalen voor Interactive Query (LLAP) is uitgebracht voor algemene beschikbaarheid voor HDI 4.0 op 27 augustus 2020. Automatisch schalen is alleen beschikbaar in Spark, Hadoop en Interactive Query, clusters
In de volgende tabel worden de clustertypen en -versies beschreven die compatibel zijn met de functie Automatische schaalaanpassing.
Versie | Spark | Hive | Interactive Query | HBase | Kafka |
---|---|---|---|---|---|
HDInsight 4.0 zonder ESP | Ja | Ja | Ja* | Nee | Nee |
HDInsight 4.0 met ESP | Ja | Ja | Ja* | Nee | Nee |
HDInsight 5.0 zonder ESP | Ja | Ja | Ja* | Nee | Nee |
HDInsight 5.0 met ESP | Ja | Ja | Ja* | Nee | Nee |
* Interactive Query clusters kunnen alleen worden geconfigureerd voor schaalaanpassing op basis van een planning, niet voor belasting.
Aan de slag
Een cluster maken met automatisch schalen op basis van belasting
Als u de functie Automatisch schalen wilt inschakelen met schalen op basis van belasting, voert u de volgende stappen uit als onderdeel van het normale proces voor het maken van een cluster:
Schakel op het tabblad Configuratie en prijzen het selectievakje Automatische schaalaanpassing inschakelen in.
Selecteer Op basis van belasting onder Type automatisch schalen.
Voer de beoogde waarden in voor de volgende eigenschappen:
- Eerste aantal knooppunten voor werkknooppunt.
- Minimum aantal werkknooppunten.
- Maximum aantal werkknooppunten.
Het aanvankelijke aantal werkknooppunten moet liggen tussen het minimum en maximum, inclusief. Deze waarde definieert de oorspronkelijke grootte van het cluster wanneer het wordt gemaakt. Het minimum aantal werkknooppunten moet worden ingesteld op drie of meer. Het schalen van uw cluster naar minder dan drie knooppunten kan ertoe leiden dat het cluster vastloopt in de veilige modus vanwege onvoldoende bestandsreplicatie. Zie Vastlopen in de veilige modus voor meer informatie.
Een cluster maken met automatisch schalen op basis van een planning
Als u de functie Automatisch schalen wilt inschakelen met schaalaanpassing op basis van een planning, voert u de volgende stappen uit als onderdeel van het normale proces voor het maken van een cluster:
Schakel op het tabblad Configuratie en prijzen het selectievakje Automatische schaalaanpassing inschakelen in.
Voer het aantal knooppunten voorhet werkknooppunt in, waarmee de limiet voor het omhoog schalen van het cluster wordt bepaald.
Selecteer de optie Op basis van planning onder Type automatische schaalaanpassing.
Selecteer Configureren om het configuratievenster Automatische schaalaanpassing te openen.
Selecteer uw tijdzone en klik vervolgens op + Voorwaarde toevoegen
Selecteer de dagen van de week waarop de nieuwe voorwaarde van toepassing moet zijn.
Bewerk het tijdstip waarop de voorwaarde van kracht moet worden en het aantal knooppunten waarnaar het cluster moet worden geschaald.
Voeg indien nodig meer voorwaarden toe.
Het aantal knooppunten moet tussen 3 en het maximum aantal werkknooppunten zijn dat u hebt ingevoerd voordat u voorwaarden toevoegt.
Laatste stappen voor het maken
Selecteer het VM-type voor werkknooppunten door een VM te selecteren in de vervolgkeuzelijst onder Knooppuntgrootte. Nadat u het VM-type voor elk knooppunttype hebt gekozen, ziet u het geschatte kostenbereik voor het hele cluster. Pas de VM-typen aan uw budget aan.
Uw abonnement heeft een capaciteitsquotum voor elke regio. Het totale aantal kernen van uw hoofdknooppunten en het maximum aantal werkknooppunten mag het capaciteitsquotum niet overschrijden. Dit quotum is echter een zachte limiet; u kunt altijd een ondersteuningsticket maken om het eenvoudig te verhogen.
Notitie
Als u de limiet voor het totale kernquotum overschrijdt, ontvangt u een foutbericht met de mededeling 'het maximum knooppunt heeft de beschikbare kernen in deze regio overschreden, kies een andere regio of neem contact op met de ondersteuning om het quotum te verhogen'.
Zie Op Linux gebaseerde clusters maken in HDInsight met behulp van de Azure Portal voor meer informatie over het maken van HDInsight-clusters met behulp van de Azure Portal.
Een cluster maken met een Resource Manager-sjabloon
Automatisch schalen op basis van belasting
U kunt een HDInsight-cluster maken met automatisch schalen op basis van belasting van een Azure Resource Manager-sjabloon door een autoscale
knooppunt toe te voegen aan de computeProfile
>workernode
sectie met de eigenschappen minInstanceCount
en maxInstanceCount
zoals weergegeven in het json-fragment. Zie Quickstart-sjabloon: Spark-cluster implementeren met automatische schaalaanpassing op basis van belasting voor een volledige Resource Manager sjabloon.
{
"name": "workernode",
"targetInstanceCount": 4,
"autoscale": {
"capacity": {
"minInstanceCount": 3,
"maxInstanceCount": 10
}
},
"hardwareProfile": {
"vmSize": "Standard_D13_V2"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "[parameters('sshUserName')]",
"password": "[parameters('sshPassword')]"
}
},
"virtualNetworkProfile": null,
"scriptActions": []
}
Automatisch schalen op basis van een planning
U kunt een HDInsight-cluster maken met automatisch schalen op basis van een planning van een Azure Resource Manager-sjabloon door een autoscale
knooppunt toe te voegen aan de computeProfile
>workernode
sectie. Het autoscale
knooppunt bevat een recurrence
met een timezone
en schedule
die beschrijft wanneer de wijziging plaatsvindt. Zie Spark-cluster implementeren met automatische schaalaanpassing op basis van een planning ingeschakeld voor een volledige Resource Manager sjabloon.
{
"autoscale": {
"recurrence": {
"timeZone": "Pacific Standard Time",
"schedule": [
{
"days": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"timeAndCapacity": {
"time": "11:00",
"minInstanceCount": 10,
"maxInstanceCount": 10
}
}
]
}
},
"name": "workernode",
"targetInstanceCount": 4
}
Automatische schaalaanpassing in- en uitschakelen voor een actief cluster
Azure Portal gebruiken
Als u Automatische schaalaanpassing wilt inschakelen voor een actief cluster, selecteert u Clustergrootte onder Instellingen. Selecteer vervolgens Automatische schaalaanpassing inschakelen. Selecteer het gewenste type automatische schaalaanpassing en voer de opties in voor schalen op basis van belasting of planning. Selecteer ten slotte Opslaan.
De REST API gebruiken
Als u automatische schaalaanpassing op een actief cluster wilt in- of uitschakelen met behulp van de REST API, moet u een POST-aanvraag indienen bij het eindpunt voor automatisch schalen:
https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{CLUSTERNAME}/roles/workernode/autoscale?api-version=2018-06-01-preview
Gebruik de juiste parameters in de nettolading van de aanvraag. De volgende json-nettolading kan worden gebruikt om automatisch schalen in te schakelen. Gebruik de nettolading {autoscale: null}
om Automatische schaalaanpassing uit te schakelen.
{ "autoscale": { "capacity": { "minInstanceCount": 3, "maxInstanceCount": 5 } } }
Zie de vorige sectie over het inschakelen van automatisch schalen op basis van belasting voor een volledige beschrijving van alle nettoladingparameters. Het wordt niet aanbevolen om de service voor automatisch schalen geforceerd uit te schakelen op een actief cluster.
Activiteiten voor automatisch schalen bewaken
De clusterstatus
De clusterstatus die wordt vermeld in de Azure Portal kan u helpen bij het bewaken van activiteiten voor automatisch schalen.
Alle clusterstatusberichten die u mogelijk ziet, worden uitgelegd in de volgende lijst.
De clusterstatus | Description |
---|---|
Wordt uitgevoerd | Het cluster werkt normaal. Alle vorige activiteiten voor automatisch schalen zijn voltooid. |
Bijwerken | De configuratie voor automatische schaalaanpassing van clusters wordt bijgewerkt. |
HDInsight-configuratie | Er wordt een cluster omhoog of omlaag geschaald. |
Fout bijwerken | HDInsight heeft problemen opgegeven tijdens de configuratie-update voor automatische schaalaanpassing. Klanten kunnen ervoor kiezen om de update opnieuw uit te voeren of automatische schaalaanpassing uit te schakelen. |
Fout | Er is iets mis met het cluster en het is niet bruikbaar. Verwijder dit cluster en maak een nieuw cluster. |
Als u het huidige aantal knooppunten in uw cluster wilt weergeven, gaat u naar de grafiek Clustergrootte op de pagina Overzicht voor uw cluster. Of selecteer Clustergrootte onder Instellingen.
Bewerkingsgeschiedenis
U kunt de geschiedenis van het omhoog schalen en omlaag schalen van het cluster weergeven als onderdeel van de metrische gegevens van het cluster. U kunt ook alle schaalacties van de afgelopen dag, week of een andere periode weergeven.
Selecteer Metrische gegevens onder Bewaking. Selecteer vervolgens Metrische waarde toevoegen en Aantal actieve werkrollen in de vervolgkeuzelijst Metrische gegevens . Selecteer de knop in de rechterbovenhoek om het tijdsbereik te wijzigen.
Aanbevolen procedures
Houd rekening met de latentie van bewerkingen voor omhoog en omlaag schalen
Het kan 10 tot 20 minuten duren voordat de algehele schaalbewerking is voltooid. Bij het instellen van een aangepaste planning moet u deze vertraging inplannen. Als u bijvoorbeeld wilt dat de clustergrootte 20 is om 9:00 uur, stelt u de schematrigger in op een eerder tijdstip, zoals 8:30 uur of eerder, zodat de schaalbewerking om 9:00 uur is voltooid.
Voorbereiden op omlaag schalen
Tijdens het proces voor omlaag schalen van het cluster worden de knooppunten automatisch buiten gebruik gesteld om aan de doelgrootte te voldoen. Als bij automatisch schalen op basis van belasting taken worden uitgevoerd op deze knooppunten, wacht Automatische schaalaanpassing totdat de taken voor Spark- en Hadoop-clusters zijn voltooid. Omdat elk werkknooppunt ook een rol heeft in HDFS, worden de tijdelijke gegevens verplaatst naar de resterende werkknooppunten. Zorg ervoor dat er voldoende ruimte is op de resterende knooppunten om alle tijdelijke gegevens te hosten.
Notitie
In het geval van automatisch omlaag schalen op basis van een planning, wordt een probleemloze buitengebruikstelling niet ondersteund. Dit kan leiden tot taakfouten tijdens een bewerking voor omlaag schalen. Het wordt aanbevolen om planningen te plannen op basis van de verwachte taakplanningspatronen, zodat er voldoende tijd is om de lopende taken af te ronden. U kunt de planningen instellen op basis van de historische spreiding van voltooiingstijden om taakfouten te voorkomen.
Automatisch schalen op basis van planning configureren op basis van gebruikspatroon
U moet uw clustergebruikspatroon begrijpen wanneer u automatische schaalaanpassing op basis van een planning configureert. Het Grafana-dashboard kan u helpen inzicht te hebben in het laden van query's en uitvoeringssites. U kunt de beschikbare uitvoerdersleuven en het totale aantal uitvoerdersleuven ophalen via het dashboard.
Hier volgt een manier om in te schatten hoeveel werkknooppunten nodig zijn. U wordt aangeraden nog een buffer van 10% te geven om de variatie van de workload af te handelen.
Aantal gebruikte uitvoerdersites = Totaal aantal uitvoerdersites : totaal aantal beschikbare uitvoerdersites.
Aantal vereiste werkknooppunten = Aantal daadwerkelijk gebruikte uitvoerdersleuven / (hive.llap.daemon.num.executors + hive.llap.daemon.task.scheduler.wait.queue.size)
*hive.llap.daemon.num.executors is configureerbaar en de standaardwaarde is 4
*hive.llap.daemon.task.scheduler.wait.queue.size kan worden geconfigureerd en de standaardwaarde is 10
Aangepaste scriptacties
Aangepaste scriptacties worden meestal gebruikt voor het aanpassen van de knooppunten (bijvoorbeeld HeadNode/WorkerNodes) waarmee onze klanten bepaalde bibliotheken en hulpprogramma's kunnen configureren die door hen worden gebruikt. Een veelvoorkomend gebruiksvoorbeeld is dat de taak(en) die op het cluster worden uitgevoerd, mogelijk enkele afhankelijkheden hebben van de bibliotheek van derden, die eigendom is van de klant, en dat deze beschikbaar moeten zijn op knooppunten om de taak te laten slagen. Voor automatische schaalaanpassing bieden we momenteel ondersteuning voor aangepaste scriptacties, die persistent zijn. Daarom worden deze persistente scriptacties uitgevoerd wanneer de nieuwe knooppunten aan het cluster worden toegevoegd als onderdeel van de bewerking voor omhoog schalen. Hoewel aangepaste scriptacties helpen bij het bootstrappen van de nieuwe knooppunten, is het raadzaam deze minimaal te houden, omdat dit de algehele latentie van omhoog schalen zou verbeteren en gevolgen kan hebben voor de geplande taken.
Houd rekening met de minimale clustergrootte
Schaal uw cluster niet omlaag naar minder dan drie knooppunten. Het schalen van uw cluster naar minder dan drie knooppunten kan ertoe leiden dat het cluster vastloopt in de veilige modus vanwege onvoldoende bestandsreplicatie. Zie Vastlopen in de veilige modus voor meer informatie.
Schaalbewerkingen voor Azure Active Directory Domain Services (Azure AD DS) &
Als u een HDInsight-cluster met Enterprise Security Package (ESP) gebruikt dat is gekoppeld aan een door Azure Active Directory Domain Services (Azure AD DS) beheerd domein, raden we u aan de belasting van de Azure AD DS te beperken. Bij synchronisatie binnen een bereik van complexe directorystructuren wordt u aangeraden de gevolgen voor schaalbewerkingen te vermijden.
De Hive-configuratie maximum totaal aantal gelijktijdige query's instellen voor het piekgebruiksscenario
Gebeurtenissen met automatische schaalaanpassing wijzigen niet de Hive-configuratie Maximum totaal aantal gelijktijdige query's in Ambari. Dit betekent dat de Hive Server 2 Interactive Service op elk moment alleen het opgegeven aantal gelijktijdige query's kan verwerken, zelfs als het aantal Interactive Query daemons omhoog en omlaag wordt geschaald op basis van belasting en planning. De algemene aanbeveling is om deze configuratie in te stellen voor het scenario met piekgebruik om handmatige interventie te voorkomen.
Er kan echter een fout optreden bij het opnieuw opstarten van Hive Server 2 als er slechts een paar werkknooppunten zijn en de waarde voor het maximumaantal gelijktijdige query's te hoog is geconfigureerd. U hebt minimaal het minimale aantal werkknooppunten nodig dat geschikt is voor het opgegeven aantal Tez Ams (gelijk aan de configuratie Maximum totaal gelijktijdige query's).
Beperkingen
aantal Interactive Query daemons
Als automatische schaalaanpassing is ingeschakeld Interactive Query clusters, wordt met een gebeurtenis voor automatisch schalen ook het aantal Interactive Query daemons omhoog/omlaag geschaald tot het aantal actieve werkknooppunten. De wijziging in het aantal daemons blijft niet behouden in de num_llap_nodes
configuratie in Ambari. Als Hive-services handmatig opnieuw worden opgestart, wordt het aantal Interactive Query daemons opnieuw ingesteld volgens de configuratie in Ambari.
Als de Interactive Query-service handmatig opnieuw wordt gestart, moet u de num_llap_node
configuratie (het aantal knooppunten dat nodig is om de Hive-Interactive Query-daemon uit te voeren) handmatig wijzigen onder Advanced hive-interactive-env zodat deze overeenkomt met het huidige aantal actieve werkrolknooppunten. Interactive Query cluster ondersteunt alleen automatische schaalaanpassing van Schedule-Based
Volgende stappen
Lees meer over richtlijnen voor het handmatig schalen van clusters in Richtlijnen voor schalen