Azure HDInsight-clusters handmatig 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 het uit tijdens piekactiviteiten.

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 een van de volgende 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 wat de versie van uw cluster is, 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 Azure CLI azure hdinsight cluster resize CLUSTERNAME NEWSIZE
Azure-portal Open het deelvenster HDInsight-cluster, selecteer Clustergrootte in het linkermenu, typ in het deelvenster Clustergrootte het aantal werkknooppunten en selecteer Opslaan.

Azure portal scale cluster option.

Met behulp van 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 uw actieve HDInsight-cluster (omhoog schalen), blijven taken ongewijzigd. Nieuwe taken kunnen veilig worden verzonden terwijl het schaalproces wordt uitgevoerd. Als de schaalbewerking mislukt, blijft uw cluster functioneel.

Als u knooppunten verwijdert (omlaag schalen), mislukken wachtende of actieve taken wanneer de schaalbewerking is voltooid. Deze fout is het gevolg van een aantal services die opnieuw worden opgestart tijdens het schaalproces. Uw cluster kan vastlopen 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 actieve Hadoop-cluster naadloos verhogen zonder dat dit van invloed is op taken. Er kunnen ook nieuwe taken worden ingediend terwijl de bewerking wordt uitgevoerd. Fouten in een schaalbewerking worden probleemloos verwerkt. Het cluster blijft altijd functioneel.

    Wanneer een Hadoop-cluster omlaag wordt geschaald met minder gegevensknooppunten, worden sommige services opnieuw opgestart. Dit gedrag zorgt ervoor dat alle actieve en wachtende taken mislukken bij het voltooien van de schaalbewerking. U kunt de taken echter opnieuw indienen 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 binnen een paar minuten na het voltooien van de schaalbewerking automatisch verdeeld. U kunt de regionale servers echter handmatig verdelen. Meld u aan bij het hoofdknooppunt van het cluster en voer de volgende opdrachten uit:

    pushd %HBASE_HOME%\bin
    hbase shell
    balancer
    

    Zie Aan de slag met een Apache HBase-voorbeeld in HDInsight voor meer informatie over het gebruik van de HBase-shell.

  • Kafka

    U moet partitiereplica's opnieuw verdelen na schaalbewerkingen. Zie het document Hoge beschikbaarheid van gegevens met Apache Kafka in HDInsight voor meer informatie.

  • Apache Hive LLAP

    Na het schalen naar N werkknooppunten stelt HDInsight automatisch de volgende configuraties in en start Hive opnieuw op.

    • 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 knooppunten voor het uitvoeren van Hive LLAP-daemon: num_llap_nodes_for_llap_daemons = N

Een cluster veilig omlaag schalen

Een cluster omlaag schalen met actieve taken

Als u wilt voorkomen dat uw actieve taken mislukken tijdens een omlaag schalen, kunt u drie dingen proberen:

  1. Wacht totdat de taken zijn voltooid voordat u het cluster omlaag schaalt.
  2. Beëindig de taken handmatig.
  3. Verzend de taken opnieuw nadat de schaalbewerking is voltooid.

Als u een lijst wilt zien met taken die in behandeling zijn en worden uitgevoerd, kunt u de GEBRUIKERSinterface van YARN Resource Manager gebruiken door de volgende stappen uit te voeren:

  1. Selecteer uw cluster via de Azure-portal. Het cluster wordt geopend op een nieuwe portalpagina.

  2. Navigeer vanuit de hoofdweergave naar de ambari-startpagina clusterdashboards>. Voer uw clusterreferenties in.

  3. Selecteer YARN in de Ambari-gebruikersinterface in de lijst met services in het menu aan de linkerkant.

  4. Selecteer op de YARN-pagina Snelle koppelingen en beweeg de muisaanwijzer over het actieve hoofdknooppunt en selecteer vervolgens de Gebruikersinterface van Resource Manager.

    Apache Ambari quick links Resource Manager UI.

U kunt rechtstreeks toegang krijgen tot de Gebruikersinterface van Resource Manager met https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/cluster.

U ziet een lijst met taken, samen met de huidige status. In de schermopname wordt er één taak uitgevoerd:

Resource Manager UI applications.

Als u die actieve toepassing handmatig wilt beëindigen, voert u de volgende opdracht uit vanuit de SSH-shell:

yarn application -kill <application_id>

Voorbeeld:

yarn application -kill "application_1499348398273_0003"

Blijven hangen in de veilige modus

Wanneer u een cluster omlaag schaalt, gebruikt HDInsight Apache Ambari-beheerinterfaces om eerst de extra werkknooppunten buiten gebruik te stellen. De knooppunten repliceren hun HDFS-blokken naar andere onlinewerkknooppunten. Daarna schaalt HDInsight het cluster veilig omlaag. HDFS gaat in de veilige modus tijdens de schaalbewerking. HDFS moet eruit komen zodra het schalen is voltooid. In sommige gevallen blijft HDFS echter hangen in de veilige modus tijdens een schaalbewerking vanwege bestandsblokkering onder replicatie.

HDFS is standaard geconfigureerd met een dfs.replication instelling van 1, waarmee wordt bepaald hoeveel exemplaren van elk bestandsblok beschikbaar zijn. Elke kopie van een bestandsblok wordt opgeslagen op een ander knooppunt van het cluster.

Wanneer het verwachte aantal blokkopieën niet beschikbaar is, wordt HDFS geactiveerd in de veilige modus en worden er waarschuwingen gegenereerd in Ambari. HDFS kan de veilige modus inschakelen voor een schaalbewerking. Het cluster kan vastlopen 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 logboeken van het naamknooppunt bekijken in de /var/log/hadoop/hdfs/ map, in de buurt van het tijdstip waarop het cluster is geschaald, om te zien wanneer het in de veilige modus is gegaan. De logboekbestanden hebben de naam Hadoop-hdfs-namenode-<active-headnode-name>.*.

De hoofdoorzaak was dat Hive afhankelijk is van tijdelijke bestanden in HDFS tijdens het uitvoeren van query's. 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 gekoppeld aan de vm's van het afzonderlijke werkknooppunt. De bestanden worden gerepliceerd onder andere werkknooppunten op drie replica's, minimaal.

Voorkomen dat HDInsight vastloopt in de veilige modus

Er zijn verschillende manieren om te voorkomen dat HDInsight in de veilige modus wordt achtergelaten:

  • 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 tmp van Hive handmatig op in HDFS voordat u omlaag schaalt.
  • Schaal HDInsight alleen omlaag naar drie werkknooppunten, minimaal. Vermijd zo laag als één werkknooppunt.
  • 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 werkknooppunt. Als uw werkbelasting is gepland, voert u de schaal omlaag uit nadat Hive-werk is voltooid.

Stop de Hive-taken voordat u schaalt, om het aantal scratchbestanden in de tmp-map (indien aanwezig) te minimaliseren.

De scratchbestanden van Hive handmatig opschonen

Als Hive tijdelijke bestanden heeft achtergelaten, kunt u deze bestanden handmatig opschonen voordat u omlaag schaalt om veilige modus te voorkomen.

  1. Controleer welke locatie wordt gebruikt voor tijdelijke Hive-bestanden door de hive.exec.scratchdir configuratie-eigenschap te bekijken. Deze parameter wordt ingesteld in /etc/hive/conf/hive-site.xml:

    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://mycluster/tmp/hive</value>
    </property>
    
  2. Stop Hive-services en zorg ervoor dat alle query's en taken zijn voltooid.

  3. Vermeld de inhoud van de hierboven gevonden hdfs://mycluster/tmp/hive/ scratchmap om te zien of deze bestanden bevat:

    hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive
    

    Hier volgt 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.info
    
  4. Als 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 gebruikersinterfacepagina van Yarn Resource Manager.

    Voorbeeld van 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 vastlopen 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 voorkomt u echter dat uw cluster vastloopt in de veilige modus.

HDInsight omlaag schalen naar één werkknooppunt

Zelfs wanneer het cluster omlaag wordt geschaald naar één knooppunt, blijft werkknooppunt 0 bestaan. Werkrolknooppunt 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 gegaan vanwege onder-replicatie van hive-bestanden, 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 een paar minuten na het voltooien van een schaalbewerking automatisch verdeeld. Voer de volgende stappen uit om regioservers handmatig te verdelen:

  1. Verbinding maken naar het HDInsight-cluster met behulp van SSH. Zie SSH gebruiken met HDInsight voor meer informatie.

  2. Start de HBase-shell:

    hbase shell
    
  3. Gebruik de volgende opdracht om de regioservers handmatig te verdelen:

    balancer
    

Volgende stappen

Zie voor specifieke informatie over het schalen van uw HDInsight-cluster: