Skala Azure HDInsight kluster manuellt
HDInsight ger elasticitet med alternativ för att skala upp och skala ned antalet arbetsnoder i dina kluster. Den här elasticiteten gör att du kan krympa ett kluster efter timmar eller på helger. Och expandera den vid höga affärsbehov.
Skala upp klustret innan periodisk batchbearbetning så att klustret har tillräckliga resurser. När bearbetningen är klar och användningen går ned skalar du ned HDInsight-klustret till färre arbetsnoder.
Du kan skala ett kluster manuellt med någon av metoderna som beskrivs nedan. Du kan också använda autoskalningsalternativ för att automatiskt skala upp och ned som svar på vissa mått.
Anteckning
Endast kluster med HDInsight version 3.1.3 eller senare stöds. Om du är osäker på vilken version av klustret du har kan du gå till sidan Egenskaper.
Verktyg för att skala kluster
Microsoft tillhandahåller följande verktyg för att skala kluster:
| Verktyg | Beskrivning |
|---|---|
| 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 |
| Klassisk Azure CLI | azure hdinsight cluster resize CLUSTERNAME NEWSIZE |
| Azure Portal | Öppna HDInsight-klusterfönstret, välj Klusterstorlek på menyn till vänster och skriv sedan antalet arbetsnoder i fönstret Klusterstorlek och välj Spara. |
Med någon av dessa metoder kan du skala upp eller ned HDInsight-klustret inom några minuter.
Viktigt
- Klassiska Azure CLI är inaktuellt och bör endast användas med den klassiska distributionsmodellen. För alla andra distributioner använder du Azure CLI.
- PowerShell AzureRM-modulen är inaktuell. Använd Az-modulen när det är möjligt.
Effekt av skalningsåtgärder
När du lägger till noder i det HDInsight-kluster som körs (skala upp) påverkas inte jobb. Nya jobb kan skickas på ett säkert sätt medan skalningsprocessen körs. Om skalningsåtgärden misslyckas lämnar felet klustret i ett funktionellt tillstånd.
Om du tar bort noder (skala ned) misslyckas väntande eller pågående jobb när skalningsåtgärden har slutförts. Det här felet beror på att vissa tjänster startas om under skalningsprocessen. Klustret kan fastna i felsäkert läge under en manuell skalningsåtgärd.
Effekten av att ändra antalet datanoder varierar för varje typ av kluster som stöds av HDInsight:
Apache Hadoop
Du kan sömlöst öka antalet arbetsnoder i ett Hadoop-kluster som körs utan att påverka några jobb. Nya jobb kan också skickas medan åtgärden pågår. Fel i en skalningsåtgärd hanteras på ett smidigt sätt. Klustret lämnas alltid i ett funktionellt tillstånd.
När ett Hadoop-kluster skalas ned med färre datanoder startas vissa tjänster om. Det här beteendet gör att alla jobb som körs och väntar på att misslyckas när skalningsåtgärden har slutförts. Du kan dock skicka jobben igen när åtgärden har slutförts.
Apache HBase
Du kan sömlöst lägga till eller ta bort noder i ditt HBase-kluster medan det körs. Regionala servrar balanseras automatiskt inom några minuter efter att skalningsåtgärden har slutförts. Du kan dock balansera de regionala servrarna manuellt. Logga in på klustrets huvudnod och kör följande kommandon:
pushd %HBASE_HOME%\bin hbase shell balancerMer information om hur du använder HBase-gränssnittet finns i Kom igång med ett Apache HBase-exempel i HDInsight.
Apache Storm
Du kan sömlöst lägga till eller ta bort datanoder när Storm körs. Men när skalningsåtgärden har slutförts måste du balansera om topologin. Ombalansering gör att topologin kan justera parallellitetsinställningarna baserat på det nya antalet noder i klustret. Om du vill balansera om topologier som körs använder du något av följande alternativ:
Storm-webbgränssnitt
Använd följande steg för att balansera om en topologi med hjälp av Storm-användargränssnittet.
Öppna
https://CLUSTERNAME.azurehdinsight.net/stormuii webbläsaren, därCLUSTERNAMEär namnet på Ditt Storm-kluster. Om du uppmanas till det anger du namnet och lösenordet för HDInsight-klusteradministratören (admin) som du angav när du skapade klustret.Välj den topologi som du vill balansera om och välj sedan knappen Balansera om. Ange fördröjningen innan ombalanseringsåtgärden är klar.
Kommandoradsgränssnittsverktyg (CLI)
Anslut till servern och använd följande kommando för att balansera om en topologi:
storm rebalance TOPOLOGYNAMEDu kan också ange parametrar för att åsidosätta parallellitetstipsen som ursprungligen tillhandahölls av topologin. Koden nedan konfigurerar till exempel om topologin till 5 arbetsprocesser, 3 utförare för komponenten blue-spout och 10 utförare för
mytopologykomponenten 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
Du bör balansera om partitionsrepliker efter skalningsåtgärder. Mer information finns i dokumentet Hög tillgänglighet för data med Apache Kafka i HDInsight.
Apache Hive LLAP
Efter skalning till
Narbetsnoder ställer HDInsight automatiskt in följande konfigurationer och startar om Hive.- Maximalt antal samtidiga frågor:
hive.server2.tez.sessions.per.default.queue = min(N, 32) - Antal noder som används av Hives LLAP:
num_llap_nodes = N - Antal noder för att köra Hive LLAP-daemon:
num_llap_nodes_for_llap_daemons = N
- Maximalt antal samtidiga frågor:
Så här skalar du ned ett kluster på ett säkert sätt
Skala ned ett kluster med jobb som körs
Om du vill undvika att dina jobb som körs misslyckas under en nedskalningsåtgärd kan du prova tre saker:
- Vänta tills jobben har slutförts innan du skalar ned klustret.
- Avsluta jobben manuellt.
- Skicka jobben igen när skalningsåtgärden har slutförts.
Om du vill se en lista över väntande och pågående jobb kan du använda YARN Resource Manager användargränssnitt genom att följa dessa steg:
Från Azure Portalväljer du klustret. Klustret öppnas på en ny portalsida.
Från huvudvyn går du till Ambari-startsidan för > klusterinstrumentpaneler. Ange autentiseringsuppgifterna för klustret.
I Ambari-användargränssnittet väljer du YARN i listan över tjänster på den vänstra menyn.
På YARN-sidan väljer du Snabblänkar och hovrar över den aktiva huvudnoden och väljer sedan Resource Manager användargränssnitt.
Du kan komma åt Resource Manager användargränssnittet direkt med https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/cluster .
Du ser en lista över jobb, tillsammans med deras aktuella tillstånd. På skärmbilden körs ett jobb för närvarande:
Om du vill köra programmet manuellt kör du följande kommando från SSH-gränssnittet:
yarn application -kill <application_id>
Exempel:
yarn application -kill "application_1499348398273_0003"
Fastna i felsäkert läge
När du skalar ned ett kluster använder HDInsight Apache Ambari-hanteringsgränssnitt för att först inaktivera de extra arbetsnoderna. Noderna replikerar sina HDFS-block till andra arbetsnoder online. Därefter skalar HDInsight klustret ned på ett säkert sätt. HDFS förs i felsäkert läge under skalningsåtgärden. HDFS ska komma ut när skalningen är klar. Men i vissa fall fastnar HDFS i felsäkert läge under en skalningsåtgärd på grund av underreplikering av filblock.
Som standard konfigureras HDFS med inställningen 1, som styr hur många dfs.replication kopior av varje filblock som är tillgängliga. Varje kopia av ett filblock lagras på en annan nod i klustret.
När det förväntade antalet blockkopior inte är tillgängligt går HDFS in i felsäkert läge och Ambari genererar aviseringar. HDFS kan gå in i felsäkert läge för en skalningsåtgärd. Klustret kan fastna i felsäkert läge om det antal noder som krävs inte har identifierats för replikering.
Exempelfel när felsäkert läge är aktiverat
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
Du kan granska namnnodloggarna från mappen, nära den tidpunkt då klustret skalades, för att se när /var/log/hadoop/hdfs/ det fördes in i felsäkert läge. Loggfilerna heter Hadoop-hdfs-namenode-<active-headnode-name>.* .
Rotorsaken var att Hive är beroende av tillfälliga filer i HDFS när frågor körs. När HDFS går in i felsäkert läge kan Hive inte köra frågor eftersom det inte kan skriva till HDFS. Temporära filer i HDFS finns på den lokala enhet som monterats på de enskilda virtuella arbetsnoderna. Filerna replikeras minst mellan andra arbetsnoder med tre repliker.
Så här förhindrar du att HDInsight fastnar i felsäkert läge
Det finns flera sätt att förhindra att HDInsight lämnas i felsäkert läge:
- Stoppa alla Hive-jobb innan du skalar ned HDInsight. Du kan också schemalägga nedskalningsprocessen för att undvika konflikter med hive-jobb som körs.
- Rensa bort Hives
tmpscratch-katalogfiler manuellt i HDFS innan du skalar ned. - Skala bara ned HDInsight till minst tre arbetsnoder. Undvik att gå så lågt som en arbetsnod.
- Kör kommandot för att lämna felsäkert läge om det behövs.
I följande avsnitt beskrivs dessa alternativ.
Stoppa alla Hive-jobb
Stoppa alla Hive-jobb innan du skalar ned till en arbetsnod. Om din arbetsbelastning har schemalagts kör du nedskalningsarbetet när Hive-arbetet är klart.
Genom att stoppa Hive-jobben före skalning kan du minimera antalet scratch-filer i tmp-mappen (om det finns några).
Rensa Hives scratch-filer manuellt
Om Hive har lämnat tillfälliga filer bakom sig kan du rensa filerna manuellt innan du skalar ned för att undvika felsäkert läge.
Kontrollera vilken plats som används för tillfälliga Hive-filer genom att titta på
hive.exec.scratchdirkonfigurationsegenskapen. Den här parametern anges i/etc/hive/conf/hive-site.xml:<property> <name>hive.exec.scratchdir</name> <value>hdfs://mycluster/tmp/hive</value> </property>Stoppa Hive-tjänster och se till att alla frågor och jobb har slutförts.
Visa en lista med innehållet i katalogen scratch ovan för
hdfs://mycluster/tmp/hive/att se om det innehåller några filer:hadoop fs -ls -R hdfs://mycluster/tmp/hive/hiveHär är ett exempel på utdata när det finns filer:
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.infoOm du vet att Hive är klar med de här filerna kan du ta bort dem. Se till att Hive inte har några frågor som körs genom att titta på yarn-Resource Manager användargränssnittssidan.
Exempel på kommandorad för att ta bort filer från HDFS:
hadoop fs -rm -r -skipTrash hdfs://mycluster/tmp/hive/
Skala HDInsight till tre eller flera arbetsnoder
Om klustren fastnar i felsäkert läge ofta när du skalar ned till färre än tre arbetsnoder behåller du minst tre arbetsnoder.
Det är dyrare att ha tre arbetsnoder än att bara skala ned till en arbetsnod. Den här åtgärden förhindrar dock att klustret fastnar i felsäkert läge.
Skala ned HDInsight till en arbetsnod
Även om klustret skalas ned till en nod kommer arbetsnod 0 fortfarande att överleva. Arbetsnod 0 kan aldrig inaktiveras.
Kör kommandot för att lämna felsäkert läge
Det sista alternativet är att köra kommandot lämna felsäkert läge. Om HDFS övergick i felsäkert läge på grund av Hive-fil under replikering, kör du följande kommando för att lämna felsäkert läge:
hdfs dfsadmin -D 'fs.default.name=hdfs://mycluster/' -safemode leave
Skala ned ett Apache HBase-kluster
Regionservrar balanseras automatiskt inom några minuter efter att en skalningsåtgärd har slutförts. Om du vill balansera regionservrar manuellt utför du följande steg:
Anslut till HDInsight-klustret med SSH. Mer information finns i Använda SSH med HDInsight.
Starta HBase-gränssnittet:
hbase shellAnvänd följande kommando för att balansera regionservrarna manuellt:
balancer
Nästa steg
Specifik information om hur du skalar ditt HDInsight-kluster finns i: