Migrace clusteru Apache HBase na novou verzi
Tento článek popisuje, jak aktualizovat cluster Apache HBase ve službě Azure HDInsight na novější verzi.
Tento článek platí jenom v případě, že pro zdrojový a cílový cluster používáte stejný účet služby Azure Storage. Pokud chcete upgradovat s novým nebo jiným účtem ú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 několik 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.
Kontrola 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í nekompatibility:
Typ kompatibility | Hlavní verze | Podverze | Patch |
---|---|---|---|
Kompatibilita Client-Server vodičů | N | Y | Y |
Kompatibilita Server-Server | N | Y | Y |
Kompatibilita formátů souborů | N | Y | Y |
Kompatibilita rozhraní API klienta | N | Y | Y |
Kompatibilita binárních souborů klienta | N | N | Y |
Omezená kompatibilita rozhraní API na straně serveru | |||
Stable | N | Y | Y |
Vyvíjí | N | N | Y |
Nestabilní | N | N | N |
Kompatibilita závislostí | N | Y | Y |
Provozní kompatibilita | N | N | Y |
Další informace o verzích a kompatibilitě 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 v části Migrace HBase pomocí skriptů pro automatizovanou migraci.
Příprava zdrojového clusteru:
- Zastavte příjem dat.
- Vyprázdnění dat memstore
- Zastavte HBase z Ambari.
- V případě clusterů s akcelerovanými zápisy zálohujte adresář dopředného protokolování (WAL).
Příprava cílového clusteru:
- Vytvořte cílový cluster.
- Zastavte HBase z Ambari.
- Aktualizujte
fs.defaultFS
v konfiguraci služby HDFS tak, aby odkazovat na původní zdrojový kontejner clusteru. - V případě clusterů s akcelerovanými zápisy aktualizujte
hbase.rootdir
konfiguraci služby HBase tak, aby odkazovala na původní zdrojový kontejner clusteru. - Vyčistěte data Zookeeperu.
Dokončete migraci:
- Vyčistěte a migrujte 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é kroky 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 úložiště memstore dosáhne určité velikosti, HBase ho vyprázdní na disk pro dlouhodobé úložiště v účtu úložiště clusteru. Odstraněním zdrojového clusteru po upgradu se odstraní také všechna data v úložištích memstores. Pokud chcete data zachovat, před upgradem ručně vyprázdněte úložiště memstore každé tabulky na disk.
Data memstore můžete vyprázdnit spuštěním skriptu flush_all_tables.sh z úložiště GitHub azure hbase-utils.
Data memstore můžete vyprázdnit také spuštěním následujícího příkazu prostředí HBase z clusteru HDInsight:
hbase shell flush "<table-name>"
Přihlaste se k Apache Ambari ve zdrojovém clusteru pomocí
https://<OLDCLUSTERNAME>.azurehdinsight.net
a zastavte služby HBase.V potvrzovací výzvě zaškrtněte políčko pro zapnutí režimu ú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 funkci zrychlených zápisů nemá, tento krok přeskočte. U zdrojových clusterů 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
V 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.net
a zastavte služby HBase.V části Služby>HDFS>Configs>Advanced>Advanced Core-Site změňte
fs.defaultFS
nastavení HDFS tak, aby odkazovat na původní název kontejneru zdrojového clusteru. Například nastavení na následujícím snímku obrazovky by se mělo změnit nawasbs://hbase-upgrade-old-2021-03-22
.Pokud má váš cílový cluster funkci Zrychlené zápisy, změňte
hbase.rootdir
cestu tak, aby odkazovala na původní název kontejneru zdrojového clusteru. Například následující cesta by se měla změnit 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
Vyčištění a migrace WAL
V závislosti na vaší zdrojové verzi HDI a na tom, jestli mají zdrojové a cílové clustery 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
<source-container-fullpath>
úložiště 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 zrychlených zápisů a cílový cluster má zrychlené 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á zrychlené 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á zrychlené 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á zrychlené zápisy.
Vyčistěte data WAL FS pro cílový cluster a zkopírujte adresář WAL zdrojového 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á zrychlené 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 adresář WAL zdrojového 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
sudo -u hdfs
Pomocí kontextu uživatele zkopírujte složku/hdp/apps/<new-version-name>
a její obsah ze<destination-container-fullpath>
složky do/hdp/apps
složky v části<source-container-fullpath>
. 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/apps
Pří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/apps
V cílovém clusteru uložte změny a restartujte všechny požadované služby, jak uvádí 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 v nastavení DNS názvu vaší domény nakonfigurovat CNAME, který odkazuje na název clusteru. Další možností je použít konfigurační soubor aplikace, který můžete aktualizovat bez opětovného nasazení.
Spusťte příjem dat.
Ověřte konzistenci HBase a 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. Pomocí následujících pokynů spusťte tyto skripty.
Poznámka
Tyto skripty v rámci migrace nekopírují staré seznamy WAL HBase. Proto se skripty nemají používat v clusterech, které mají povolenou funkci zálohování HBase nebo replikace.
Ve zdrojovém clusteru
sudo bash migrate-hbase-source.sh
V 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: