Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs hur du uppdaterar Apache HBase-klustret i Azure HDInsight till en nyare version.
Den här artikeln gäller endast om du använder samma Azure Storage-konto för dina käll- och målkluster. Information om hur du uppgraderar med ett nytt eller annat lagringskonto för målklustret finns i Migrera Apache HBase till en ny version med ett nytt Lagringskonto.
Stilleståndstiden vid uppgradering bör bara vara några minuter. Den här stilleståndstiden orsakas av stegen för att rensa alla minnesinterna data och tiden för att konfigurera och starta om tjänsterna i det nya klustret. Dina resultat varierar beroende på antalet noder, mängden data och andra variabler.
Granska Apache HBase-kompatibilitet
Innan du uppgraderar Apache HBase kontrollerar du att HBase-versionerna på käll- och målkluster är kompatibla. Granska HBase-versionskompatibilitetsmatrisen och viktig information i HBase-referensguiden för att kontrollera att programmet är kompatibelt med den nya versionen.
Här är ett exempel på en kompatibilitetsmatris. Y anger kompatibilitet och N anger en potentiell inkompatibilitet:
| Kompatibilitetstyp | Huvudversion | Delversion | Patch |
|---|---|---|---|
| Trådkompatibilitet för klientserver | N | Y | Y |
| Server-Server-kompatibilitet | N | Y | Y |
| Filformatskompatibilitet | N | Y | Y |
| Klient-API-kompatibilitet | N | Y | Y |
| Binär kompatibilitet för klient | N | N | Y |
| Begränsad API-kompatibilitet på serversidan | |||
| Stabil | N | Y | Y |
| Utvecklas | N | N | Y |
| Instabil | N | N | N |
| Beroendekompatibilitet | N | Y | Y |
| Driftkompatibilitet | N | N | Y |
Mer information om HDInsight-versioner och kompatibilitet finns i Azure HDInsight-versioner.
Översikt över Apache HBase-klustermigrering
Utför följande grundläggande steg för att uppgradera ditt Apache HBase-kluster i Azure HDInsight. Detaljerade anvisningar finns i detaljerade steg och kommandon, eller använd skripten från avsnittet Migrera HBase med hjälp av skript för automatisk migrering.
Förbered källklustret:
- Stoppa datainmatning.
- Rensa memstore-data.
- Stoppa HBase från Ambari.
- För kluster med accelererade skrivningar säkerhetskopierar du katalogen Write Ahead Log (WAL).
Förbered målklustret:
- Skapa målklustret.
- Stoppa HBase från Ambari.
- Uppdatera
fs.defaultFSi HDFS-tjänstkonfigurationer för att referera till den ursprungliga källklustercontainern. - Uppdatera
hbase.rootdiri HBase-tjänstkonfigurationerna för att referera till den ursprungliga källklustercontainern för kluster med accelererade skrivningar. - Rensa Zookeeper-data.
Slutför migreringen:
- Rensa och migrera WAL.
- Kopiera appar från målklustrets standardcontainer till den ursprungliga källcontainern.
- Starta alla tjänster från Ambari-målklustret.
- Verifiera HBase.
- Ta bort källklustret.
Detaljerade migreringssteg och kommandon
Använd de här detaljerade stegen och kommandona för att migrera ditt Apache HBase-kluster.
Förbered källklustret
Stoppa inmatning till HBase-källklustret.
Rensa det HBase-källkluster som du uppgraderar.
HBase skriver inkommande data till ett minnesinternt arkiv som kallas memstore. När memstore har nått en viss storlek skriver HBase den till disken för långtidslagring i klustrets lagringskonto. Om du tar bort källklustret efter en uppgradering tas även alla data i memstores bort. Om du vill behålla data, spola varje tabells memstore manuellt till disken innan du uppgraderar.
Du kan rensa memstore-data genom att köra flush_all_tables.sh-skriptet från GitHub-lagringsplatsen Azure hbase-utils.
Du kan också rensa memstore-data genom att köra följande HBase-kommando från HDInsight-klustret:
hbase shell flush "<table-name>"Logga in på Apache Ambari i källklustret med
https://<OLDCLUSTERNAME>.azurehdinsight.netoch stoppa HBase-tjänsterna.I bekräftelseprompten väljer du rutan för att aktivera underhållsläge för HBase.
Mer information om hur du ansluter till och använder Ambari finns i Hantera HDInsight-kluster med Ambari-webbgränssnittet.
Om ditt HBase-källkluster inte har funktionen Accelererade skrivningar hoppar du över det här steget. För HBase-källkluster med accelererade skrivningar säkerhetskopierar du WAL-katalogen under HDFS genom att köra följande kommandon från en SSH-session på någon av Zookeeper-noderna eller arbetsnoderna i källklustret.
hdfs dfs -mkdir /hbase-wal-backup hdfs dfs -cp hdfs://mycluster/hbasewal /hbase-wal-backup
Förbereda målklustret
I Azure Portal konfigurerar du ett nytt HDInsight-målkluster med samma lagringskonto som källklustret, men med ett annat containernamn:
Logga in på Apache Ambari på det nya klustret vid
https://<NEWCLUSTERNAME>.azurehdinsight.netoch stoppa HBase-tjänsterna.Under Services>HDFS>Configs>Advanced>Advanced core-site, ändra inställningen för HDFS så att den pekar på det ursprungliga klustrets containernamn. Inställningen i följande skärmbild bör till exempel ändras till
wasbs://hbase-upgrade-old-2021-03-22.
Om ditt målkluster har funktionen Accelererade skrivningar, ändra
hbase.rootdir-sökvägen så att den pekar mot det ursprungliga källklustrets containernamn. Följande sökväg bör till exempel ändras tillhbase-upgrade-old-2021-03-22. Om klustret inte har accelererade skrivningar hoppar du över det här steget.
Rensa Zookeeper-data i målklustret genom att köra följande kommandon i en Zookeeper-nod eller arbetsnod:
hbase zkcli rmr /hbase-unsecure quit
Rensa och migrera WAL
Kör följande kommandon, beroende på din HDI-källversion och om käll- och målkluster har accelererade skrivningar.
- Målklustret är alltid HDI version 4.0, eftersom HDI 3.6 endast har Basic support och inte rekommenderas för nya kluster.
- HDFS-kopieringskommandot är
hdfs dfs <copy properties starting with -D> -cp <source> <destination> # Serial execution.
Anmärkning
- För lagringstypen
<source-container-fullpath>WASB ärwasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net. - Lagringstypen
<source-container-fullpath>för Azure Data Lake Storage Gen2 ärabfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net.
- Källklustret är HDI 3.6 med accelererade skrivningar och målklustret har accelererade skrivningar.
- Källklustret är HDI 3.6 utan accelererade skrivningar och målklustret har accelererade skrivningar.
- Källklustret är HDI 3.6 utan accelererade skrivningar och målklustret har inte accelererade skrivningar.
- Källklustret är HDI 4.0 med accelererade skrivningar och målklustret har accelererade skrivningar.
- Källklustret är HDI 4.0 utan accelererade skrivningar och målklustret har accelererade skrivningar.
- Källklustret är HDI 4.0 utan accelererade skrivningar och målklustret har inte accelererade skrivningar.
Källklustret är HDI 3.6 eller HDI 4.0 med accelererade skrivningar och målklustret har accelererade skrivningar
Rensa WAL FS-data för målklustret och kopiera WAL-katalogen från källklustret till målklustrets HDFS. Kopiera katalogen genom att köra följande kommandon i en Zookeeper-nod eller arbetsnod i målklustret:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wal-backup/hbasewal hdfs://mycluster/
Källklustret är HDI 3.6 utan accelererade skrivningar och målklustret har accelererade skrivningar
Rensa WAL FS-data för målklustret och kopiera WAL-katalogen från källklustret till målklustrets HDFS. Kopiera katalogen genom att köra följande kommandon i en Zookeeper-nod eller arbetsnod i målklustret:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs" -cp <source-container>/hbase/*WALs hdfs://mycluster/hbasewal
Källklustret är HDI 3.6 utan accelererade skrivningar och målklustret har inte accelererade skrivningar
Rensa WAL FS-data för målklustret och kopiera källklustrets WAL-katalog till målklustrets HDFS. Om du vill kopiera katalogen kör du följande kommandon i valfri Zookeeper-nod eller arbetsnod i målklustret:
sudo -u hbase hdfs dfs -rm -r /hbase-wals/*
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs" -cp <source-container-fullpath>/hbase/*WALs /hbase-wals
Källklustret är HDI 4.0 utan accelererade skrivningar och målklustret har accelererade skrivningar
Rensa WAL FS-data för målklustret och kopiera WAL-katalogen från källklustret till målklustrets HDFS. Kopiera katalogen genom att köra följande kommandon i en Zookeeper-nod eller arbetsnod i målklustret:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wals/* hdfs://mycluster/hbasewal
Källklustret är HDI 4.0 utan accelererade skrivningar och målklustret har inte accelererade skrivningar
Rensa WAL FS-data för målklustret och kopiera källklustrets WAL-katalog till målklustrets HDFS. Om du vill kopiera katalogen kör du följande kommandon i valfri Zookeeper-nod eller arbetsnod i målklustret:
sudo -u hbase hdfs dfs -rm -r /hbase-wals/*
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase-wals" -cp <source-container-fullpath>/hbase-wals /
Slutföra migreringen
Med hjälp av
sudo -u hdfsanvändarkontexten kopierar du mappen/hdp/apps/<new-version-name>och dess innehåll från<destination-container-fullpath>till/hdp/appsmappen under<source-container-fullpath>. Du kan kopiera mappen genom att köra följande kommandon i målklustret:sudo -u hdfs hdfs dfs -cp /hdp/apps/<hdi-version> <source-container-fullpath>/hdp/appsTill exempel:
sudo -u hdfs hdfs dfs -cp /hdp/apps/4.1.3.6 wasbs://hbase-upgrade-old-2021-03-22@hbaseupgrade.blob.core.windows.net/hdp/appsSpara ändringarna i målklustret och starta om alla nödvändiga tjänster som Ambari anger.
Peka ditt program till målklustret.
Anmärkning
Det statiska DNS-namnet för ditt program ändras när du uppgraderar. I stället för att hårdkoda det här DNS-namnet kan du konfigurera ett CNAME i domännamnets DNS-inställningar som pekar på klustrets namn. Ett annat alternativ är att använda en konfigurationsfil för ditt program som du kan uppdatera utan att distribuera om.
Starta inmatningen.
Kontrollera HBase-konsekvens och verifiera enkla Data Definition Language (DDL) och Data Manipulation Language (DML)-åtgärder.
Om målklustret är tillfredsställande tar du bort källklustret.
Migrera HBase med hjälp av skript
Kör skriptet migrate-hbase-source.sh på källklustret och migrate-hbase-dest.sh i målklustret. Använd följande instruktioner för att köra dessa skript.
Anmärkning
Dessa skript kopierar inte de gamla HBase-WAL:erna som en del av migreringen. Därför ska skripten inte användas på kluster som har antingen HBase Backup eller replikeringsfunktionen aktiverad.
I källklustret
sudo bash migrate-hbase-source.shI målklustret
sudo bash migrate-hbase-dest.sh -f <src_default_Fs>
Obligatoriskt argument för kommandot ovan:
-f, --src-fs
The fs.defaultFS of the source cluster
For example:
-f wasb://anynamehbase0316encoder-2021-03-17t01-07-55-935z@anynamehbase0hdistorage.blob.core.windows.net
Nästa steg
Mer information om Apache HBase och uppgradering av HDInsight-kluster finns i följande artiklar: