Migrace Apache HBase na novou verzi a účet úložiště
Tento článek popisuje, jak aktualizovat cluster Apache HBase ve službě Azure HDInsight na novější verzi s jiným účtem Azure Storage.
Tento článek platí jenom v případě, že potřebujete pro zdrojové a cílové clustery používat různé účty úložiště. Pokud chcete upgradovat verze se stejným účtem úložiště pro zdrojové a cílové clustery, přečtěte si téma Migrace Apache HBase na novou verzi.
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.
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í nekompatibilitu:
Typ kompatibility | Hlavní verze | Podverze | Patch |
---|---|---|---|
Kompatibilita přenosu mezi klientem a serverem | N | Y | Y |
Kompatibilita serveru | N | Y | Y |
Kompatibilita formátu 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 |
Poznámky k verzi HBase by měly popisovat případné nekompatibility. Otestujte aplikaci v clusteru s cílovou verzí SLUŽBY HDInsight a HBase.
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 a migrovat cluster Apache HBase v Azure HDInsight na nový účet úložiště, proveďte následující základní kroky. Podrobné pokyny najdete v podrobných krocích a příkazech.
Příprava zdrojového clusteru:
- Zastavte příjem dat.
- Vyprázdnění
memstore
dat - Zastavte HBase z 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 z Ambari.
- Vyčištění dat Zookeeperu
- Přepněte uživatele na HBase.
Dokončete migraci:
- Vyčistěte cílový systém souborů, migrujte data a odeberte
/hbase/hbase.id
. - Vyčistěte a migrujte WAL.
- 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 s novým účtem úložiště.
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
Jakmilememstore
dosáhne určité velikosti, HBase ji vyprázdní na disk pro dlouhodobé úložiště v účtu úložiště clusteru. Odstranění zdrojového clusteru po upgradu odstraní také všechna data v souborumemstores
. Pokud chcete zachovat data, před upgradem ručně vyprázdněte každou tabulkumemstore
na disk.Data můžete vyprázdnit
memstore
spuštěním skriptu flush_all_tables.sh z úložiště hbase-utils Na GitHubu.Data můžete také vyprázdnit
memstore
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.net
a 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 zdrojového clusteru nebo pracovního uzlu.
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, který používá jiný účet úložiště než váš zdrojový cluster.
Přihlaste se k Apache Ambari v novém clusteru na adrese
https://<NEWCLUSTERNAME>.azurehdinsight.net
a zastavte služby HBase.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
Přepněte uživatele na HBase spuštěním
sudo su hbase
příkazu .
Vyčištění a migrace systému souborů a 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.
- 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.
Účet <container-endpoint-url>
úložiště je https://<storageaccount>.blob.core.windows.net/<container-name>
. Na konci adresy URL předejte token SAS pro účet úložiště.
- Typ
<container-fullpath>
úložiště WASB jewasbs://<container-name>@<storageaccount>.blob.core.windows.net
- Typ
<container-fullpath>
úložiště Azure Data Lake Storage Gen2 jeabfs://<container-name>@<storageaccount>.dfs.core.windows.net
.
Kopírování příkazů
Příkaz pro kopírování HDFS je hdfs dfs <copy properties starting with -D> -cp
Lepší hadoop distcp
výkon při kopírování souborů, které nejsou v objektu blob stránky: hadoop distcp <copy properties starting with -D>
Pokud chcete předat klíč účtu úložiště, použijte:
-Dfs.azure.account.key.<storageaccount>.blob.core.windows.net='<storage account key>'
-Dfs.azure.account.keyprovider.<storageaccount>.blob.core.windows.net=org.apache.hadoop.fs.azure.SimpleKeyProvider
Nástroj AzCopy můžete také použít k lepšímu výkonu při kopírování datových souborů HBase.
Spusťte příkaz AzCopy:
azcopy cp "<source-container-endpoint-url>/hbase" "<target-container-endpoint-url>" --recursive
Pokud je cílovým účtem úložiště Azure Blob Storage, proveďte tento krok po zkopírování. Pokud je cílovým účtem úložiště Data Lake Storage Gen2, tento krok přeskočte.
Ovladač Hadoop WASB používá speciální 0 velkých objektů blob odpovídajících každému adresáři. AzCopy tyto soubory při kopírování přeskočí. Některé operace WASB tyto objekty blob používají, takže je musíte vytvořit v cílovém clusteru. Objekty blob vytvoříte spuštěním následujícího příkazu Hadoop z libovolného uzlu v cílovém clusteru:
sudo -u hbase hadoop fs -chmod -R 0755 /hbase
AzCopy si můžete stáhnout z webu Začínáme s nástrojem AzCopy. Další informace o použití nástroje AzCopy najdete v tématu azcopy copy.
Zdrojový cluster je HDI 3.6 nebo HDI 4.0 s akcelerovanými zápisy a cílový cluster má akcelerované zápisy.
Pokud chcete vyčistit systém souborů a migrovat data, spusťte následující příkazy:
hdfs dfs -rm -r /hbase hadoop distcp <source-container-fullpath>/hbase /
Odebrání
hbase.id
spuštěním příkazuhdfs dfs -rm /hbase/hbase.id
Pokud chcete vyčistit a migrovat WAL, spusťte následující příkazy:
hdfs dfs -rm -r hdfs://<destination-cluster>/hbasewal hdfs dfs -cp <source-container-fullpath>/hbase-wal-backup/hbasewal hdfs://<destination-cluster>/hbasewal
Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster má akcelerované zápisy.
Pokud chcete vyčistit systém souborů a migrovat data, spusťte následující příkazy:
hdfs dfs -rm -r /hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs,/hbase-wals" -cp <source-container-fullpath>/hbase / hdfs dfs -rm -r /hbase/*WALs
Odebrání
hbase.id
spuštěním příkazuhdfs dfs -rm /hbase/hbase.id
Pokud chcete vyčistit a migrovat WAL, spusťte následující příkazy:
hdfs dfs -rm -r hdfs://<destination-cluster>/hbasewal/* hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs,/hbase-wals" -cp <source-container-fullpath>/hbase/*WALs hdfs://<destination-cluster>/hbasewal
Zdrojový cluster je HDI 3.6 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
Pokud chcete vyčistit systém souborů a migrovat data, spusťte následující příkazy:
hdfs dfs -rm -r /hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs,/hbase-wals" -cp <source-container-fullpath>/hbase / hdfs dfs -rm -r /hbase/*WALs
Odebrání
hbase.id
spuštěním příkazuhdfs dfs -rm /hbase/hbase.id
Pokud chcete vyčistit a migrovat WAL, spusťte následující příkazy:
hdfs dfs -rm -r /hbase-wals/* hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs,/hbase-wals" -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.
Pokud chcete vyčistit systém souborů a migrovat data, spusťte následující příkazy:
hdfs dfs -rm -r /hbase hadoop distcp <source-container-fullpath>/hbase /
Odebrání
hbase.id
spuštěním příkazuhdfs dfs -rm /hbase/hbase.id
Pokud chcete vyčistit a migrovat WAL, spusťte následující příkazy:
hdfs dfs -rm -r hdfs://<destination-cluster>/hbasewal hdfs dfs -Dfs.azure.page.blob.dir="/hbase-wals" -cp <source-container-fullpath>/hbase-wals hdfs://<destination-cluster>/hbasewal
Zdrojový cluster je HDI 4.0 bez akcelerovaných zápisů a cílový cluster nemá akcelerované zápisy.
Pokud chcete vyčistit systém souborů a migrovat data, spusťte následující příkazy:
hdfs dfs -rm -r /hbase hadoop distcp <source-container-fullpath>/hbase /
Odebrání
hbase.id
spuštěním příkazuhdfs dfs -rm /hbase/hbase.id
Pokud chcete vyčistit a migrovat WAL, spusťte následující příkazy:
hdfs dfs -rm -r /hbase-wals/* hdfs dfs -Dfs.azure.page.blob.dir="/hbase-wals" -cp <source-container-fullpath>/hbase-wals /
Dokončení migrace
V cílovém clusteru uložte změny a restartujte všechny požadované služby podle pokynů 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 příjem dat.
Ověřte konzistenci HBase a operace DML (Simple Data Definition Language) a DML (Data Manipulation Language).
Pokud je cílový cluster uspokojivý, odstraňte zdrojový cluster.
Další kroky
Další informace o Apache HBase a upgradu clusterů HDInsight najdete v následujících článcích: