Migrace clusteru Apache HBase do nové verze

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:

  1. Zastavte příjem dat.
  2. Vyprázdnění dat memstore
  3. Zastavte HBase pomocí Ambari.
  4. Pro clustery s akcelerovanými zápisy zálohujte adresář WAL (Write Ahead Log).

Příprava cílového clusteru:

  1. Vytvořte cílový cluster.
  2. Zastavte HBase pomocí Ambari.
  3. Aktualizujte konfiguraci služby HDFS fs.defaultFS, aby odkazovalo na původní zdrojový kontejner clusteru.
  4. V případě clusterů s akcelerovanými zápisy aktualizujte hbase.rootdir v konfiguracích služby HBase odkazující na původní zdrojový kontejner clusteru.
  5. Vyčištění dat Zookeeperu

Dokončete proces migrace:

  1. Vyčistěte a přeneste WAL.
  2. Zkopírujte aplikace z výchozího kontejneru cílového clusteru do původního zdrojového kontejneru.
  3. Spusťte všechny služby z cílového clusteru Ambari.
  4. Ověřte HBase.
  5. 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

  1. Zastavte příjem dat do zdrojového clusteru HBase.

  2. 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>"
    
  3. Přihlaste se ke službě Apache Ambari ve zdrojovém clusteru pomocí https://<OLDCLUSTERNAME>.azurehdinsight.neta zastavte služby HBase.

  4. 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.

  5. 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

  1. 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:

  2. Přihlaste se k Apache Ambari v novém clusteru na adrese https://<NEWCLUSTERNAME>.azurehdinsight.neta zastavte služby HBase.

  3. 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.

    V Ambari vyberte Služby > HDFS > Configs > Advanced Advanced > Core-Site a změňte název kontejneru.

  4. Pokud má cílový cluster funkci Akcelerované 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 měla být změněna na hbase-upgrade-old-2021-03-22. Pokud váš cluster nemá akcelerované zápisy, přeskočte tento krok.

    V Ambari změňte název kontejneru pro kořenový adresář HBase.

  5. 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 je wasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net.
  • Typ úložiště <source-container-fullpath> pro Azure Data Lake Storage Gen2 je abfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net.

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

  1. Pomocí kontextu uživatele zkopírujte složku sudo -u hdfs a 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/apps
    

    Napří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
    
  2. V cílovém clusteru uložte změny a restartujte všechny požadované služby, jak indikuje Ambari.

  3. 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í.

  4. Spusťte zpracování dat.

  5. Ověřte konzistenci HBase a jednoduché operace DDL (Data Definition Language) a DML (Data Manipulation Language).

  6. Pokud je cílový cluster uspokojivý, odstraňte zdrojový cluster.

Migrace HBase pomocí skriptů

  1. 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.

  2. Ve zdrojovém clusteru

    sudo bash migrate-hbase-source.sh
    
  3. 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: