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 kantooruren of in het weekend verkleinen. En breid het uit tijdens pieken in de bedrijfsbehoeften.

Schaal uw cluster omhoog vóór periodieke batchverwerking, zodat het cluster over voldoende resources beschikt. Nadat de verwerking is voltooid en het gebruik is afneemt, 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 automatische schaalaanpassing 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 bent van de versie van uw cluster, kunt u de pagina Eigenschappen controleren.

Hulpprogramma's voor het schalen van clusters

Microsoft biedt de volgende hulpprogramma's om clusters te schalen:

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 HDInsight-cluster, selecteer Clustergrootte in het menu aan de linkerkant, typ in het deelvenster Clustergrootte het aantal werkknooppunten en selecteer Opslaan.

Azure Portal optie cluster schalen

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 indien mogelijk de Az-module .

Impact van schaalbewerkingen

Wanneer u knooppunten toevoegt aan uw actieve HDInsight-cluster (omhoog schalen), worden taken niet beïnvloed. Nieuwe taken kunnen veilig worden verzonden terwijl het schaalproces wordt uitgevoerd. Als de schaalbewerking mislukt, zorgt de fout ervoor dat uw cluster in een functionele status blijft.

Als u knooppunten verwijdert (omlaag schalen), mislukken openstaande of actieve taken wanneer de schaalbewerking is voltooid. Deze fout wordt veroorzaakt doordat sommige services 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 per 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 ingediend terwijl de bewerking wordt uitgevoerd. Fouten in een schaalbewerking worden probleemloos verwerkt. Het cluster heeft altijd een functionele status.

    Wanneer een Hadoop-cluster omlaag wordt geschaald met minder gegevensknooppunten, worden sommige services opnieuw gestart. Dit gedrag zorgt ervoor dat alle actieve en in behandeling zijnde 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 automatisch verdeeld binnen een paar minuten na het voltooien van de schaalbewerking. U kunt de regionale servers echter handmatig verdelen. Meld u aan bij het clusterhoofdknooppunt 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.

    • 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 tot de taken zijn voltooid voordat u het cluster omlaag schaalt.
  2. De taken handmatig beëindigen.
  3. Verzend de taken opnieuw nadat de schaalbewerking is voltooid.

Als u een lijst met in behandeling zijnde en actieve taken wilt weergeven, 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 naarAmbari-startpaginaclusterdashboards>. Voer uw clusterreferenties in.

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

  4. Selecteer op de yarn-pagina Snelle koppelingen, beweeg de muisaanwijzer over het actieve hoofdknooppunt en selecteer vervolgens Resource Manager UI.

    Snelkoppelingen voor Apache Ambari Resource Manager-gebruikersinterface

U hebt rechtstreeks toegang tot de gebruikersinterface van Resource Manager 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:

Resource Manager UI-toepassingen

Als u de actieve toepassing handmatig wilt beëindigen, 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 buiten gebruik te stellen. De knooppunten repliceren hun HDFS-blokken naar andere online werkknooppunten. Daarna schaalt HDInsight het cluster veilig omlaag. HDFS gaat in de veilige modus tijdens de schaalbewerking. HDFS wordt verondersteld uit te komen zodra het schalen is voltooid. In sommige gevallen loopt HDFS echter vast in de veilige modus tijdens een schaalbewerking vanwege een bestandsblok onder-replicatie.

STANDAARD is HDFS geconfigureerd met een dfs.replication instelling van 1, waarmee wordt bepaald hoeveel kopieën 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, schakelt HDFS in de veilige modus en genereert Ambari waarschuwingen. HDFS kan de veilige modus activeren voor een schaalbewerking. Het cluster kan vastlopen in de veilige modus als het vereiste aantal knooppunten voor replicatie niet is gedetecteerd.

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 van de /var/log/hadoop/hdfs/ map bekijken, 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 overschakelt naar de veilige modus, kan Hive geen query's uitvoeren omdat het niet naar HDFS kan schrijven. Tijdelijke bestanden in HDFS bevinden zich op het lokale station dat is gekoppeld aan de afzonderlijke werkrolknooppunt-VM's. 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 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 tot minimaal drie werkknooppunten. Vermijd zo laag als één werkknooppunt.
  • Voer indien nodig de opdracht uit om de veilige modus te verlaten.

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 workload is gepland, voert u de schaal omlaag uit nadat Hive-werk is voltooid.

Door de Hive-taken te stoppen voordat u schaalt, wordt het aantal scratchbestanden in de map tmp (indien van toepassing) geminimaliseerd.

De scratchbestanden van Hive handmatig opschonen

Als Hive tijdelijke bestanden heeft achtergelaten, kunt u deze bestanden handmatig opschonen voordat u omlaag schaalt om de 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 is 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 scratchmap die hierboven is gevonden om hdfs://mycluster/tmp/hive/ te zien of deze bestanden bevat:

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

    Hier volgt een voorbeeld van uitvoer 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 uitvoert 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 vaak vastlopen in de veilige modus bij het omlaag schalen 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 behouden. Werkknooppunt 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 de veilige modus is ingegaan vanwege een onderreplicatie 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 verdeeld. Als u regioservers handmatig wilt verdelen, voert u de volgende stappen uit:

  1. Maak verbinding met 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: