Sdílet prostřednictvím


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:

  1. Zastavte příjem dat.
  2. Vyprázdnění dat memstore
  3. Zastavte HBase z Ambari.
  4. V případě clusterů s akcelerovanými zápisy zálohujte adresář dopředného protokolování (WAL).

Příprava cílového clusteru:

  1. Vytvořte cílový cluster.
  2. Zastavte HBase z Ambari.
  3. Aktualizujte fs.defaultFS v konfiguraci služby HDFS tak, aby odkazovat na původní zdrojový kontejner clusteru.
  4. 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.
  5. Vyčistěte data Zookeeperu.

Dokončete migraci:

  1. Vyčistěte a migrujte 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é 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

  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 ú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>"
    
  3. Přihlaste se k 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 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.

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

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

  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>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 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á 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 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
    

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 je wasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net.
  • Typ <source-container-fullpath> úložiště 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á 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

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

  4. Spusťte příjem dat.

  5. Ověřte konzistenci HBase a 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. 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.

  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: