Clusters handmatig Azure HDInsight schalen
HDInsight biedt elasticiteit met opties om het aantal werkknooppunten in uw clusters omhoog en omlaag te schalen. Met deze elasticiteit kunt u een cluster na uren of in het weekend verkleinen. En breid deze uit tijdens pieken in de bedrijfsvraag.
Schaal uw cluster omhoog vóór periodieke batchverwerking, zodat het cluster voldoende resources heeft. Nadat de verwerking is voltooid en het gebruik omlaag gaat, schaalt u het HDInsight-cluster omlaag naar minder werkknooppunten.
U kunt een cluster handmatig schalen met behulp van een van de onderstaande methoden. U kunt ook opties voor automatisch schalen gebruiken om automatisch omhoog en omlaag te schalen als reactie op bepaalde metrische gegevens.
Notitie
Alleen clusters met HDInsight versie 3.1.3 of hoger worden ondersteund. Als u niet zeker weet welke versie van uw cluster u hebt, kunt u de pagina Eigenschappen controleren.
Hulpprogramma's voor het schalen van clusters
Microsoft biedt de volgende hulpprogramma's voor het schalen van clusters:
| Hulpprogramma | Beschrijving |
|---|---|
| PowerShell Az | Set-AzHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE |
| PowerShell AzureRM | Set-AzureRmHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE |
| Azure-CLI | az hdinsight resize --resource-group RESOURCEGROUP --name CLUSTERNAME --workernode-count NEWSIZE |
| Klassieke versie van Azure-CLI | azure hdinsight cluster resize CLUSTERNAME NEWSIZE |
| Azure-portal | Open het deelvenster van het HDInsight-cluster, selecteer Clustergrootte in het menu aan de linkerkant, typ in het deelvenster Clustergrootte het aantal werkknooppunten en selecteer Opslaan. |
Met een van deze methoden kunt u uw HDInsight-cluster binnen enkele minuten omhoog of omlaag schalen.
Belangrijk
- De klassieke Azure CLI is afgeschaft en mag alleen worden gebruikt met het klassieke implementatiemodel. Gebruik de Azure CLI voor alle andere implementaties.
- De PowerShell AzureRM-module is afgeschaft. Gebruik waar mogelijk de Az-module.
Impact van schaalbewerkingen
Wanneer u knooppunten toevoegt aan het hdinsight-cluster dat wordt uitgevoerd (omhoog schalen), worden taken niet beïnvloed. Nieuwe taken kunnen veilig worden verzonden terwijl het schaalproces wordt uitgevoerd. Als de schaalbewerking mislukt, heeft de fout de functionele status van uw cluster.
Als u knooppunten verwijdert (omlaag schalen), mislukken in behandeling zijnde of lopende taken wanneer de schaalbewerking is voltooid. Deze fout is het gevolg van een aantal services die opnieuw worden opgestart tijdens het schalen. Uw cluster kan vast komen te zitten in de veilige modus tijdens een handmatige schaalbewerking.
De impact van het wijzigen van het aantal gegevensknooppunten varieert voor elk type cluster dat wordt ondersteund door HDInsight:
Apache Hadoop
U kunt het aantal werkknooppunten in een actief Hadoop-cluster naadloos verhogen zonder dat dit van invloed is op taken. Nieuwe taken kunnen ook worden verzonden terwijl de bewerking wordt uitgevoerd. Fouten in een schaalbewerking worden zonder problemen afgehandeld. Het cluster blijft altijd functioneel.
Wanneer een Hadoop-cluster omlaag wordt geschaald met minder gegevensknooppunten, worden sommige services opnieuw gestart. Dit gedrag zorgt ervoor dat alle taken die worden uitgevoerd en in behandeling zijn, mislukken bij het voltooien van de schaalbewerking. U kunt de taken echter opnieuw inzenden zodra de bewerking is voltooid.
Apache HBase
U kunt naadloos knooppunten toevoegen aan of verwijderen uit uw HBase-cluster terwijl het wordt uitgevoerd. Regionale servers worden automatisch verdeeld binnen een paar minuten na het voltooien van de schaalbewerking. U kunt de regionale servers echter handmatig in balans brengen. Meld u aan bij het clusterhoofdknooppunt en voer de volgende opdrachten uit:
pushd %HBASE_HOME%\bin hbase shell balancerZie Aan de slag met een Apache HBase-voorbeeld in HDInsight voor meer informatie over het gebruik van de HBase-shell.
Apache Storm
U kunt naadloos gegevensknooppunten toevoegen of verwijderen terwijl Storm wordt uitgevoerd. Nadat de schaalbewerking is voltooid, moet u de topologie echter opnieuw in balans brengen. Door opnieuw te hervertalen kan de topologie de instellingen voor parallellisme aanpassen op basis van het nieuwe aantal knooppunten in het cluster. Gebruik een van de volgende opties om de lopendepologies opnieuw te in balans te brengen:
Storm-webinterface
Gebruik de volgende stappen om een topologie opnieuw in balans te brengen met behulp van de Storm-gebruikersinterface.
Open
https://CLUSTERNAME.azurehdinsight.net/stormuiin uw webbrowser, waarbij de naam vanCLUSTERNAMEuw Storm-cluster is. Als u hier om wordt gevraagd, voert u de naam en het wachtwoord van de HDInsight-clusterbeheerder (beheerder) in die u hebt opgegeven bij het maken van het cluster.Selecteer de topologie die u opnieuw wilt in balans brengen en selecteer vervolgens de knop Opnieuw in balans brengen. Voer de vertraging in voordat de herbalanceerbewerking is uitgevoerd.
Opdrachtregelinterface (CLI)
Verbinding maken naar de server en gebruik de volgende opdracht om een topologie opnieuw in balans te brengen:
storm rebalance TOPOLOGYNAMEU kunt ook parameters opgeven om de hints voor parallellelisme te overschrijven die oorspronkelijk zijn opgegeven door de topologie. Met de onderstaande code wordt de topologie bijvoorbeeld opnieuw geconfigureerd voor 5 werkprocessen, 3 uitvoerders voor het
mytopologyblue-spout-onderdeel en 10 uitvoerders voor het onderdeel yellow-bolt.## Reconfigure the topology "mytopology" to use 5 worker processes, ## the spout "blue-spout" to use 3 executors, and ## the bolt "yellow-bolt" to use 10 executors $ storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
Kafka
U moet partitiereplica's opnieuw verdelen na het schalen van bewerkingen. Zie het document Hoge beschikbaarheid van gegevens met Apache Kafka hdinsight voor meer informatie.
Apache Hive LLAP
Na het schalen naar werkknooppunten worden in HDInsight automatisch de volgende
Nconfiguraties ingesteld en Hive opnieuw gestart.- Maximumaantal gelijktijdige query's:
hive.server2.tez.sessions.per.default.queue = min(N, 32) - Aantal knooppunten dat wordt gebruikt door LLAP van Hive:
num_llap_nodes = N - Aantal knooppunt(en) voor het uitvoeren van Hive LLAP-daemon:
num_llap_nodes_for_llap_daemons = N
- Maximumaantal gelijktijdige query's:
Een cluster veilig omlaag schalen
Een cluster omlaag schalen met taken die worden uitgevoerd
Als u wilt voorkomen dat uw taken mislukken tijdens een omlaag schalen, kunt u drie dingen proberen:
- Wacht tot de taken zijn voltooid voordat u het cluster omlaag schaalt.
- De taken handmatig beëindigen.
- U kunt de taken opnieuw inzenden nadat de schaalbewerking is afgerond.
Als u een lijst met in behandeling zijnde en lopende taken wilt weergeven, kunt u de YARN-Resource Manager gebruiken. Volg deze stappen:
Selecteer in Azure Portalhet cluster. Het cluster wordt geopend op een nieuwe portalpagina.
Navigeer in de hoofdweergave naar Clusterdashboards > Ambari-start. Voer uw clusterreferenties in.
Selecteer in de Ambari-gebruikersinterface YARN in de lijst met services in het menu aan de linkerkant.
Selecteer op de yarn-pagina Snelle koppelingen en beweeg de muisaanwijzer over het actieve hoofd-knooppunt en selecteer vervolgens Resource Manager UI.
U hebt rechtstreeks toegang tot Resource Manager gebruikersinterface met https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/cluster .
U ziet een lijst met taken, samen met hun huidige status. In de schermopname wordt momenteel één taak uitgevoerd:
Als u de toepassing die wordt uitgevoerd handmatig wilt verwijderen, voert u de volgende opdracht uit vanuit de SSH-shell:
yarn application -kill <application_id>
Bijvoorbeeld:
yarn application -kill "application_1499348398273_0003"
Blijven hangen in de veilige modus
Wanneer u een cluster omlaag schaalt, maakt HDInsight gebruik van Apache Ambari-beheerinterfaces om eerst de extra werkknooppunten uit bedrijf te nemen. De knooppunten repliceren hun HDFS-blokken naar andere online werkknooppunten. Daarna schaalt HDInsight het cluster veilig omlaag. HDFS wordt tijdens het schalen in de veilige modus uitgevoerd. HDFS moet worden uitgevoerd zodra het schalen is voltooid. In sommige gevallen loopt HDFS echter vast in de veilige modus tijdens een schaalbewerking vanwege een te grote replicatie van het bestandsblok.
HDFS is standaard geconfigureerd met de instelling 1, waarmee wordt bepaalt hoeveel exemplaren van elk dfs.replication bestandsblok beschikbaar zijn. Elke kopie van een bestandsblok wordt opgeslagen op een ander knooppunt van het cluster.
Wanneer het verwachte aantal blokkopieen niet beschikbaar is, wordt hdfs in de veilige modus gebruikt en genereert Ambari waarschuwingen. HDFS kan in de veilige modus worden uitgevoerd voor een schaalbewerking. Het cluster kan vast komen te zitten in de veilige modus als het vereiste aantal knooppunten niet wordt gedetecteerd voor replicatie.
Voorbeeldfouten wanneer de veilige modus is ingeschakeld
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/hive/hive/819c215c-6d87-4311-97c8-4f0b9d2adcf0. Name node is in safe mode.
org.apache.http.conn.HttpHostConnectException: Connect to active-headnode-name.servername.internal.cloudapp.net:10001 [active-headnode-name.servername. internal.cloudapp.net/1.1.1.1] failed: Connection refused
U kunt de naamknooppuntlogboeken bekijken vanuit de map, in de buurt van het tijdstip waarop het cluster is geschaald, om te zien wanneer het de /var/log/hadoop/hdfs/ veilige modus is binnengegaan. De logboekbestanden hebben de naam Hadoop-hdfs-namenode-<active-headnode-name>.* .
De hoofdoorzaak is dat Hive tijdens het uitvoeren van query's afhankelijk is van tijdelijke bestanden in HDFS. Wanneer HDFS in de veilige modus komt, kan Hive geen query's uitvoeren omdat deze niet naar HDFS kan schrijven. Tijdelijke bestanden in HDFS bevinden zich op het lokale station dat is bevestigd aan de VM's van het afzonderlijke werk knooppunt. De bestanden worden minimaal op drie replica's gerepliceerd tussen andere werkknooppunten.
Voorkomen dat HDInsight vastloopt in de veilige modus
Er zijn verschillende manieren om te voorkomen dat HDInsight in de veilige modus wordt gelaten:
- Stop alle Hive-taken voordat u HDInsight omlaag schaalt. U kunt ook het proces voor omlaag schalen plannen om conflicten met het uitvoeren van Hive-taken te voorkomen.
- Schoon de scratchmapbestanden van Hive handmatig op
tmpin HDFS voordat u omlaag schaalt. - Alleen HDInsight omlaag schalen naar drie werkknooppunten, minimaal. Vermijd zo laag te gaan als één werkpunt.
- Voer de opdracht uit om de veilige modus te verlaten, indien nodig.
In de volgende secties worden deze opties beschreven.
Alle Hive-taken stoppen
Stop alle Hive-taken voordat u omlaag schaalt naar één werk knooppunt. Als uw workload is gepland, voert u de omlaag schalen uit nadat het Hive-werk is uitgevoerd.
Door de Hive-taken te stoppen voordat u gaat schalen, wordt het aantal scratchbestanden in de map tmp (indien van toepassing) geminimaliseerd.
De scratchbestanden van Hive handmatig ops schonen
Als Hive tijdelijke bestanden heeft nagelaten, kunt u deze bestanden handmatig ops schonen voordat u omlaag schaalt om de veilige modus te voorkomen.
Controleer welke locatie wordt gebruikt voor tijdelijke Hive-bestanden door te kijken naar de
hive.exec.scratchdirconfiguratie-eigenschap. Deze parameter wordt ingesteld in/etc/hive/conf/hive-site.xml:<property> <name>hive.exec.scratchdir</name> <value>hdfs://mycluster/tmp/hive</value> </property>Stop Hive-services en zorg ervoor dat alle query's en taken zijn voltooid.
Vermeld de inhoud van de bovenstaande scratchmap om
hdfs://mycluster/tmp/hive/te zien of deze bestanden bevat:hadoop fs -ls -R hdfs://mycluster/tmp/hive/hiveHier is een voorbeelduitvoer wanneer er bestanden bestaan:
sshuser@scalin:~$ hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive drwx------ - hive hdfs 0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c drwx------ - hive hdfs 0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/_tmp_space.db -rw-r--r-- 3 hive hdfs 27 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.info -rw-r--r-- 3 hive hdfs 0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.lck drwx------ - hive hdfs 0 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699 -rw-r--r-- 3 hive hdfs 26 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699/inuse.infoAls u weet dat Hive klaar is met deze bestanden, kunt u ze verwijderen. Zorg ervoor dat Hive geen query's heeft die worden uitgevoerd door te kijken op de pagina Yarn Resource Manager ui.
Voorbeeld van een opdrachtregel voor het verwijderen van bestanden uit HDFS:
hadoop fs -rm -r -skipTrash hdfs://mycluster/tmp/hive/
HDInsight schalen naar drie of meer werkknooppunten
Als uw clusters regelmatig vast komen te zitten in de veilige modus wanneer u omlaag schaalt naar minder dan drie werkknooppunten, moet u ten minste drie werkknooppunten behouden.
Het hebben van drie werkknooppunten is duurder dan omlaag schalen naar slechts één werkknooppunt. Met deze actie wordt echter voorkomen dat uw cluster vastloopt in de veilige modus.
HDInsight omlaag schalen naar één werk knooppunt
Zelfs wanneer het cluster omlaag wordt geschaald naar één knooppunt, blijft werkknooppunt 0 bestaan. Werk knooppunt 0 kan nooit buiten gebruik worden gesteld.
Voer de opdracht uit om de veilige modus te verlaten
De laatste optie is om de opdracht 'veilige modus verlaten' uit te voeren. Als HDFS in de veilige modus is gekomen vanwege de replicatie van het Hive-bestand, voert u de volgende opdracht uit om de veilige modus te verlaten:
hdfs dfsadmin -D 'fs.default.name=hdfs://mycluster/' -safemode leave
Een Apache HBase-cluster omlaag schalen
Regioservers worden binnen enkele minuten na het voltooien van een schaalbewerking automatisch in balans gebracht. Voltooi de volgende stappen om regioservers handmatig te balanceren:
Verbinding maken met SSH naar het HDInsight-cluster. Zie SSH gebruiken met HDInsight voor meer informatie.
Start de HBase-shell:
hbase shellGebruik de volgende opdracht om de regioservers handmatig in balans te brengen:
balancer
Volgende stappen
Zie voor specifieke informatie over het schalen van uw HDInsight-cluster: