Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak aktualizovat cluster Apache HBase v Azure HDInsight na novější verzi.
Tento článek platí jenom v případě, že pro zdrojové a cílové clustery používáte stejný účet Azure Storage. Pokud chcete upgradovat pomocí nového nebo jiného účtu úložiště pro cílový cluster, přečtěte si téma Migrace Apache HBase na novou verzi s novým účtem úložiště.
Výpadek při upgradu by měl být jen pár minut. Tento výpadek je způsoben postupem vyprázdnění všech dat v paměti a časem konfigurace a restartování služeb v novém clusteru. Výsledky se budou lišit v závislosti na počtu uzlů, množství dat a dalších proměnných.
Přezkum kompatibility Apache HBase
Před upgradem Apache HBase se ujistěte, že jsou verze HBase ve zdrojovém a cílovém clusteru kompatibilní. Projděte si matici kompatibility verzí HBase a poznámky k verzi v referenční příručce HBase a ujistěte se, že je vaše aplikace kompatibilní s novou verzí.
Tady je příklad matice kompatibility. Y označuje kompatibilitu a N označuje potenciální nekompatibilitu:
| Typ kompatibility | Hlavní verze | Menší verze | Patch |
|---|---|---|---|
| Kompatibilita drátového přenosu mezi klientem a serverem | N | Й | Й |
| Kompatibilita server-server | N | Й | Й |
| Kompatibilita formátu souborů | N | Й | Й |
| Kompatibilita rozhraní API klienta | N | Й | Й |
| Kompatibilita binárních souborů klienta | N | N | Й |
| Omezená kompatibilita rozhraní API na straně serveru | |||
| Stabilní | N | Й | Й |
| Evoluující | N | N | Й |
| Nestabilní | N | N | N |
| Kompatibilita závislostí | N | Й | Й |
| Provozní kompatibilita | N | N | Й |
Další informace o verzích a kompatibilitě SLUŽBY HDInsight najdete v tématu Verze Azure HDInsight.
Přehled migrace clusteru Apache HBase
Pokud chcete upgradovat cluster Apache HBase ve službě Azure HDInsight, proveďte následující základní kroky. Podrobné pokyny najdete v podrobných krocích a příkazech nebo použijte skripty z části Migrate HBase pomocí skriptů pro automatizovanou migraci.
Příprava zdrojového clusteru:
- Zastavte příjem dat.
- Vyprázdnění dat memstore
- Zastavte HBase pomocí Ambari.
- Pro clustery s akcelerovanými zápisy zálohujte adresář WAL (Write Ahead Log).
Příprava cílového clusteru:
- Vytvořte cílový cluster.
- Zastavte HBase pomocí Ambari.
- Aktualizujte konfiguraci služby HDFS
fs.defaultFS, aby odkazovalo na původní zdrojový kontejner clusteru. - V případě clusterů s akcelerovanými zápisy aktualizujte
hbase.rootdirv konfiguracích služby HBase odkazující na původní zdrojový kontejner clusteru. - Vyčištění dat Zookeeperu
Dokončete proces migrace:
- Vyčistěte a přeneste WAL.
- Zkopírujte aplikace z výchozího kontejneru cílového clusteru do původního zdrojového kontejneru.
- Spusťte všechny služby z cílového clusteru Ambari.
- Ověřte HBase.
- Odstraňte zdrojový cluster.
Podrobný postup a příkazy migrace
Pomocí těchto podrobných kroků a příkazů můžete migrovat cluster Apache HBase.
Příprava zdrojového clusteru
Zastavte příjem dat do zdrojového clusteru HBase.
Vyprázdněte zdrojový cluster HBase, který upgradujete.
HBase zapisuje příchozí data do úložiště v paměti označovaného jako memstore. Jakmile memstore dosáhne určité velikosti, HBase jej vyprázdní na disk pro dlouhodobé uložení v clusterovém úložišti. Odstranění zdrojového clusteru po upgradu odstraní také všechna data v úložištích memstore. Pokud chcete zachovat data, před upgradem ručně vyprázdněte memstore jednotlivých tabulek na disk.
Data memstore můžete vyprázdnit spuštěním skriptu flush_all_tables.sh z úložiště Azure hbase-utils Na GitHubu.
Data memstore můžete také vyprázdnit spuštěním následujícího příkazu prostředí HBase z clusteru HDInsight:
hbase shell flush "<table-name>"Přihlaste se ke službě Apache Ambari ve zdrojovém clusteru pomocí
https://<OLDCLUSTERNAME>.azurehdinsight.neta zastavte služby HBase.V potvrzovací výzvě zaškrtněte políčko a zapněte režim údržby pro HBase.
Další informace o připojení a používání Ambari najdete v tématu Správa clusterů HDInsight pomocí webového uživatelského rozhraní Ambari.
Pokud váš zdrojový cluster HBase nemá funkci Zrychlené zápisy , přeskočte tento krok. Pro zdrojové clustery HBase s akcelerovanými zápisy zálohujte adresář WAL v HDFS spuštěním následujících příkazů z relace SSH na libovolném uzlu Zookeeper nebo pracovních uzlech zdrojového clusteru.
hdfs dfs -mkdir /hbase-wal-backup hdfs dfs -cp hdfs://mycluster/hbasewal /hbase-wal-backup
Příprava cílového clusteru
Na webu Azure Portal nastavte nový cílový cluster HDInsight pomocí stejného účtu úložiště jako zdrojový cluster, ale s jiným názvem kontejneru:
Přihlaste se k Apache Ambari v novém clusteru na adrese
https://<NEWCLUSTERNAME>.azurehdinsight.neta zastavte služby HBase.V části Služby>HDFS>Konfigurace, >>, změňte nastavení HDFS tak, aby odkazovalo na původní název kontejneru zdrojového clusteru. Například nastavení na následujícím snímku obrazovky by mělo být změněno na
wasbs://hbase-upgrade-old-2021-03-22.
Pokud má cílový cluster funkci Akcelerované zápisy, změňte
hbase.rootdircestu tak, aby odkazovala na původní název kontejneru zdrojového clusteru. Například následující cesta by měla být změněna nahbase-upgrade-old-2021-03-22. Pokud váš cluster nemá akcelerované zápisy, přeskočte tento krok.
Vyčistíte data Zookeeperu v cílovém clusteru spuštěním následujících příkazů v libovolném uzlu Zookeeper nebo pracovním uzlu:
hbase zkcli rmr /hbase-unsecure quit
Čištění a migrace WAL
V závislosti na vaší zdrojové verzi HDI a na tom, jestli zdrojové a cílové clustery mají akcelerované zápisy, spusťte následující příkazy.
- Cílový cluster je vždy HDI verze 4.0, protože HDI 3.6 je v základní podpoře a nedoporučuje se pro nové clustery.
- Příkaz pro kopírování HDFS je
hdfs dfs <copy properties starting with -D> -cp <source> <destination> # Serial execution.
Poznámka:
- Typ
<source-container-fullpath>úložiště WASB jewasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net. - Typ úložiště
<source-container-fullpath>pro Azure Data Lake Storage Gen2 jeabfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net.
- Zdrojový cluster je HDI 3.6 s akcelerovanými zápisy a cílový cluster má akcelerované zápisy.
- Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster má akcelerované zápisy.
- Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
- Zdrojový cluster je HDI 4.0 s akcelerovanými zápisy a cílový cluster má akcelerované zápisy.
- Zdrojový cluster je HDI 4.0 bez akcelerovaných zápisů a cílový cluster má akcelerované zápisy.
- Zdrojový cluster je HDI 4.0 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
Zdrojový cluster je HDI 3.6 nebo HDI 4.0 s akcelerovanými zápisy a cílový cluster má akcelerované zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte adresář WAL ze zdrojového clusteru do HDFS cílového clusteru. Zkopírujte adresář spuštěním následujících příkazů v libovolném uzlu Zookeeper nebo pracovním uzlu v cílovém clusteru:
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/
Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster má akcelerované zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte adresář WAL ze zdrojového clusteru do HDFS cílového clusteru. Zkopírujte adresář spuštěním následujících příkazů v libovolném uzlu Zookeeper nebo pracovním uzlu v cílovém clusteru:
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
Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte zdrojový adresář WAL clusteru do HDFS cílového clusteru. Pokud chcete zkopírovat adresář, spusťte následující příkazy v libovolném uzlu Zookeeper nebo pracovním uzlu v cílovém clusteru:
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
Zdrojový cluster je HDI 4.0 bez akcelerovaných zápisů a cílový cluster má akcelerované zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte adresář WAL ze zdrojového clusteru do HDFS cílového clusteru. Zkopírujte adresář spuštěním následujících příkazů v libovolném uzlu Zookeeper nebo pracovním uzlu v cílovém clusteru:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wals/* hdfs://mycluster/hbasewal
Zdrojový cluster je HDI 4.0 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte zdrojový adresář WAL clusteru do HDFS cílového clusteru. Pokud chcete zkopírovat adresář, spusťte následující příkazy v libovolném uzlu Zookeeper nebo pracovním uzlu v cílovém clusteru:
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 /
Dokončení migrace
Pomocí kontextu uživatele zkopírujte složku
sudo -u hdfsa její obsah ze složky/hdp/apps/<new-version-name>do složky<destination-container-fullpath>v rámci/hdp/apps. Složku můžete zkopírovat spuštěním následujících příkazů v cílovém clusteru:sudo -u hdfs hdfs dfs -cp /hdp/apps/<hdi-version> <source-container-fullpath>/hdp/appsNapříklad:
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/appsV cílovém clusteru uložte změny a restartujte všechny požadované služby, jak indikuje Ambari.
Nasměrujte aplikaci na cílový cluster.
Poznámka:
Při upgradu se změní statický název DNS vaší aplikace. Místo pevného kódování tohoto názvu DNS můžete nakonfigurovat název CNAME v nastavení DNS vašeho názvu domény, které odkazuje na název clusteru. Další možností je použít konfigurační soubor pro vaši aplikaci, který můžete aktualizovat bez opětovného nasazení.
Spusťte zpracování dat.
Ověřte konzistenci HBase a jednoduché operace DDL (Data Definition Language) a DML (Data Manipulation Language).
Pokud je cílový cluster uspokojivý, odstraňte zdrojový cluster.
Migrace HBase pomocí skriptů
Spusťte skript migrate-hbase-source.sh ve zdrojovém clusteru a migrate-hbase-dest.sh v cílovém clusteru. K provedení těchto skriptů použijte následující pokyny.
Poznámka:
Tyto skripty nekopírují staré waly HBase v rámci migrace; Proto skripty nejsou použity v clusterech, které mají povolenou funkci zálohování HBase nebo replikace.
Ve zdrojovém clusteru
sudo bash migrate-hbase-source.shV cílovém clusteru
sudo bash migrate-hbase-dest.sh -f <src_default_Fs>
Povinný argument pro výše uvedený příkaz:
-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
Další kroky
Další informace o Apache HBase a upgradu clusterů HDInsight najdete v následujících článcích: