Apache HBase-fürt új verzióra való frissítése

Ez a cikk bemutatja, hogyan frissítheti az Apache HBase-fürtöt az Azure HDInsight környezetében egy újabb verzióra.

Ez a cikk csak akkor érvényes, ha ugyanazt az Azure Storage-fiókot használja a forrás- és célfürtökhöz. Ha a célfürt számára egy új vagy eltérő tárolófiókkal szeretne frissíteni, olvassa el: Az Apache HBase áttelepítése új verzióra új tárolófiókkal.

A frissítés közbeni állásidőnek csak néhány percnek kell lennie. A rendszerleállást az összes memóriabeli adat kiürítésére vonatkozó lépések, valamint az új klaszteren lévő szolgáltatások konfigurálásához és újraindításához szükséges idő okozza. Az eredmények a csomópontok számától, az adatok mennyiségétől és más változóktól függően változnak.

Az Apache HBase kompatibilitásának áttekintése

Az Apache HBase frissítése előtt győződjön meg arról, hogy a forrás- és célfürtök HBase-verziói kompatibilisek. Tekintse át a HBase verziókompatibilitási mátrixát és kibocsátási megjegyzéseit a HBase referencia-útmutatójában annak ellenőrzéséhez, hogy az alkalmazás kompatibilis-e az új verzióval.

Íme egy példa kompatibilitási mátrixra. Az Y kompatibilitást jelez, az N pedig potenciális inkompatibilitást jelez:

Kompatibilitás típusa Fő verzió Kisebb verzió Javítás
Ügyfél-kiszolgáló vezetékkompatibilitása N Y Y
Kiszolgáló-kiszolgáló kompatibilitása N Y Y
Fájlformátum kompatibilitása N Y Y
Ügyfél API-kompatibilitás N Y Y
Ügyfél bináris kompatibilitása N N Y
Kiszolgálóoldali korlátozott API-kompatibilitás
Stabil N Y Y
Fejlődő N N Y
Instabil N N N
Függőségek kompatibilitása N Y Y
Működési kompatibilitás N N Y

További információ a HDInsight-verziókról és a kompatibilitásról: Azure HDInsight-verziók.

Apache HBase-klaszter migrálása – áttekintés

Az Apache HBase-fürt Azure HDInsighton való frissítéséhez hajtsa végre az alábbi alapvető lépéseket. Részletes útmutatásért tekintse meg a lépéseket és parancsokat, vagy használja az Automatizált migrálás HBase szkriptek segítségével szakasz szkriptjeit.

A forrásfürt előkészítése:

  1. Adatbetöltés leállítása.
  2. Memstore-adatok kiürítése.
  3. Állítsa le a HBase-t az Ambariból.
  4. Gyorsított írással rendelkező fürtök esetén biztonsági másolatot kell készítenie az Előre írási napló (WAL) könyvtárról.

A célcsoport előkészítése:

  1. Hozza létre a célfürtöt.
  2. Állítsa le a HBase-t az Ambariból.
  3. Frissítse fs.defaultFS az HDFS szolgáltatás beállításaiban, hivatkozásaképpen az eredeti forrásfürt-tárolóra.
  4. Gyorsított írással rendelkező fürtök esetén frissítsen hbase.rootdir a HBase szolgáltatáskonfigurációiban, hogy az eredeti forrásfürt-tárolóra hivatkozzon.
  5. A Zookeeper-adatok tisztítása.

Végezze el a migrálást:

  1. Tisztítsa és migrálja a WAL-t.
  2. Másolja az alkalmazásokat a célfürt alapértelmezett tárolójából az eredeti forrástárolóba.
  3. Indítsa el az összes szolgáltatást az Ambari célfürtből.
  4. Ellenőrizze a HBase-t.
  5. Törölje a forrásfürtöt.

Részletes áttelepítési lépések és parancsok

Ezeket a részletes lépéseket és parancsokat követve migrálhatja az Apache HBase-fürtöt.

Készítsd elő a forrásfürtöt

  1. Állítsa le a forrás HBase-fürt adatbetöltését.

  2. Ürítse ki a frissíteni kívánt forrás HBase-fürtöt.

    A HBase egy memstorenevű memóriabeli tárolóba írja a bejövő adatokat. Miután a memstore elérte a bizonyos méretet, a HBase a klaszter tárfiókjában lévő hosszú távú tárolás céljából kimenti azt lemezre. A forrásklaszter törlése a frissítés után a memóriatárolók összes adatát is törli. Az adatok megőrzéséhez a frissítés előtt manuálisan ürítse ki az egyes táblák memstore-ját a lemezre.

    A memstore-adatok kiüríthetők a flush_all_tables.sh szkript futtatásával a Azure hbase-utils GitHub-adattárból.

    A memstore-adatokat a KÖVETKEZŐ HBase-rendszerhéj parancs futtatásával is kiürítheti a HDInsight-fürtből:

    hbase shell
    flush "<table-name>"
    
  3. Jelentkezzen be a forrásfürtre az Apache Ambari alkalmazásba a https://<OLDCLUSTERNAME>.azurehdinsight.nethasználatával, és állítsa le a HBase-szolgáltatásokat.

  4. A megerősítést kérő párbeszédpanelen válassza a jelölőnégyzetet a HBase karbantartási mód bekapcsolásához.

    Az Ambarihoz való csatlakozásról és az Ambari használatával kapcsolatos további információkért lásd HDInsight-fürtök kezelése az Ambari webes felhasználói felületével.

  5. Ha a forrás HBase-fürt nem rendelkezik a Gyorsított Írások funkcióval, hagyja ki ezt a lépést. Gyorsított írással rendelkező forrás HBase-fürtök esetén a HDFS-ben védje meg a WAL könyvtárat az alábbi parancsok alkalmazásával egy SSH-munkamenetből a forrásfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján.

    hdfs dfs -mkdir /hbase-wal-backup
    hdfs dfs -cp hdfs://mycluster/hbasewal /hbase-wal-backup
    

A célfürt előkészítése

  1. Az Azure portálon állítson be egy új cél-HDInsight-fürtöt ugyanazzal a tárfiókkal, mint a forrásfürt, de más tárolónévvel.

  2. Jelentkezzen be az Apache Ambariba az új klaszteren https://<NEWCLUSTERNAME>.azurehdinsight.net, és állítsa le a HBase szolgáltatásait.

  3. A Szolgáltatások>HDFS>Konfigurációk>Speciális>Speciális core-site területén módosítsa a fs.defaultFS HDFS-beállítást úgy, hogy az az eredeti forrásfürt-tároló nevére mutasson. Az alábbi képernyőképen látható beállítást például a következőre kell módosítani wasbs://hbase-upgrade-old-2021-03-22.

    Az Ambariban válassza a Szolgáltatások > HDFS > Konfigurációk > Speciális > Speciális maghely lehetőséget, és módosítsa a tároló nevét.

  4. Ha a célfürt rendelkezik a Gyorsított írások funkcióval, módosítsa az hbase.rootdir elérési útvonalát úgy, hogy az az eredeti forrásfürt tárolónevére mutasson. Az alábbi elérési utat például módosítani kell a következőre hbase-upgrade-old-2021-03-22. Ha a fürt nem rendelkezik gyorsított írási műveletekkel, hagyja ki ezt a lépést.

    Az Ambariban módosítsa a HBase rootdir tárolónevét.

  5. Törölje a Zookeeper-adatokat a célfürtön az alábbi parancsok futtatásával bármely Zookeeper-csomóponton vagy feldolgozó csomóponton:

    hbase zkcli
    rmr /hbase-unsecure
    quit
    

WAL tisztítása és migrálása

A következő parancsokat az alábbiak szerint hajtsa végre: a forrás HDI-verziójától és attól függően, hogy a forrás- és célfürtök rendelkeznek-e Accelerated Writes funkcióval.

  • A célfürt mindig a HDI 4.0 verziója, mivel a HDI 3.6 csak alapszintű támogatásban részesül, és nem ajánlott új fürtök létrehozásához.
  • A HDFS másolási parancsa a következő hdfs dfs <copy properties starting with -D> -cp <source> <destination> # Serial execution: .

Megjegyzés

  • A <source-container-fullpath> WASB tárolótípus a wasbs://<source-container-name>@<storageaccountname>.blob.core.windows.netkövetkező: .
  • Az <source-container-fullpath> Azure Data Lake Storage Gen2 tárolási típusa az abfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net.

A forrásfürt HDI 3.6 vagy HDI 4.0 gyorsított írással, a célfürt pedig gyorsított írási képességgel rendelkezik

Törölje a célfürt WAL FS-adatait, és másolja a WAL-könyvtárat a forrásfürtből a célfürt HDFS-fájljába. Másolja a könyvtárat a következő parancsok futtatásával a célfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján:

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/

A forrásfürt HDI 3.6 gyorsított írások nélkül, a célfürt pedig gyorsított írásokkal rendelkezik

Törölje a célfürt WAL FS-adatait, és másolja a WAL-könyvtárat a forrásfürtből a célfürt HDFS-fájljába. Másolja a könyvtárat a következő parancsok futtatásával a célfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján:

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

A forrásfürt HDI 3.6 gyorsított írások nélkül, a célfürt pedig nem rendelkezik gyorsított írásokkal

Törölje a célfürt WAL FS-adatait, és másolja a forrásfürt WAL-könyvtárát a célfürt HDFS-fájljába. A könyvtár másolásához futtassa a következő parancsokat a célfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján:

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

A forrásfürt HDI 4.0 gyorsított írások nélkül, a célfürt pedig gyorsított írásokkal rendelkezik

Törölje a célfürt WAL FS-adatait, és másolja a WAL-könyvtárat a forrásfürtből a célfürt HDFS-fájljába. Másolja a könyvtárat a következő parancsok futtatásával a célfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján:

sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wals/* hdfs://mycluster/hbasewal

A forrásfürt HDI 4.0 gyorsított írások nélkül, a célfürt pedig nem rendelkezik gyorsított írásokkal

Törölje a célfürt WAL FS-adatait, és másolja a forrásfürt WAL-könyvtárát a célfürt HDFS-fájljába. A könyvtár másolásához futtassa a következő parancsokat a célfürt bármelyik Zookeeper-csomópontján vagy feldolgozó csomópontján:

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 /

A migrálás befejezése

  1. A(z) sudo -u hdfs felhasználói környezet használatával másolja a(z) /hdp/apps/<new-version-name> mappát és annak tartalmát a(z) <destination-container-fullpath> mappából a(z) <source-container-fullpath> mappába a(z) /hdp/apps alá. A mappa másolásához futtassa a következő parancsokat a célfürtön:

    sudo -u hdfs hdfs dfs -cp /hdp/apps/<hdi-version> <source-container-fullpath>/hdp/apps
    

    Például:

    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. Mentse a módosításokat a célfürtön, és indítsa újra az összes szükséges szolgáltatást, ahogy az Ambari jelzi.

  3. Irányítsa az alkalmazást a célfürtre.

    Megjegyzés

    A frissítéskor megváltozik az alkalmazás statikus DNS-neve. A DNS-név kemény kódolása helyett konfigurálhat egy CNAME-t a tartománynév DNS-beállításaiban, amelyek a fürt nevére mutatnak. Egy másik lehetőség egy konfigurációs fájl használata az alkalmazáshoz, amelyet újra üzembe helyezés nélkül frissíthet.

  4. Kezdje el az adatbetöltést.

  5. Ellenőrizze a HBase konzisztenciáját és az egyszerű adatdefiníciós nyelv (DDL) és az adatmanipulációs nyelv (DML) műveleteit.

  6. Ha a célfürt megfelelő, törölje a forrásfürtöt.

HBase migrálása szkriptekkel

  1. Hajtsa végre a szkript migrate-hbase-source.sh a forrásfürtön, és migrate-hbase-dest.sh a célfürtön. A szkriptek végrehajtásához kövesse az alábbi utasításokat.

    Megjegyzés

    Ezek a szkriptek nem másolják a HBase régi WAL-jait a migrálás részeként; ezért a szkriptek nem használhatók olyan fürtökben, ahol engedélyezve van a HBase Biztonsági mentése vagy a Replikáció funkció.

  2. A forrásfürtön

    sudo bash migrate-hbase-source.sh
    
  3. Célfürtön

    sudo bash migrate-hbase-dest.sh  -f <src_default_Fs>
    

A fenti parancs kötelező argumentuma:

   -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

Következő lépések

Az Apache HBase-ről és a HDInsight-fürtök frissítéséről az alábbi cikkekben olvashat bővebben: