Megosztás a következőn keresztül:


Apache HBase-fürt migrálása új verzióba

Ez a cikk azt ismerteti, hogyan frissítheti az Apache HBase-fürtöt az Azure HDInsightban 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ürthöz egy új vagy eltérő Storage-fiókkal szeretne frissíteni, olvassa el az Apache HBase áttelepítése új verzióra egy új Storage-fiókkal című témakört.

A frissítés közbeni állásidőnek csak néhány percnek kell lennie. Ezt az állásidőt az okozza, hogy a rendszer kiüríti az összes memóriabeli adatot, valamint az új fürt szolgáltatásainak konfigurálásához és újraindításához szükséges időt. 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 , és győződjön meg arról, hogy az alkalmazás kompatibilis 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ó Alverzió Patch
Client-Server vezetékkompatibilitás N Y Y
Server-Server kompatibilitás 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
Stable 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

A HDInsight-verziókkal és -kompatibilitással kapcsolatos további információkért lásd: Azure HDInsight-verziók.

Apache HBase-fürt 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 részletes lépéseket és parancsokat, vagy használja a HBase migrálása szkriptek használatával című szakasz szkripteit az automatikus migráláshoz .

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ást tartalmazó fürtök esetén biztonsági másolatot készít az Előre írási napló (WAL) könyvtárról.

A célfürt 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ítsen fs.defaultFS a HDFS-szolgáltatás konfigurációiban, hogy az eredeti forrásfürt-tárolóra hivatkozzon.
  4. Gyorsított írási folyamattal rendelkező fürtök esetén frissítsen hbase.rootdir a HBase szolgáltatáskonfigurálásaiban, 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 meg é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 migrálá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.

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

  1. Állítsa le a forrás HBase-fürtbe való betöltést.

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

    A HBase a bejövő adatokat egy memstore nevű memóriabeli tárolóba írja. Miután a memstore elérte a kívánt méretet, a HBase a fürt tárfiókjában lévő hosszú távú tároláshoz kiüríti azt a lemezre. Ha a frissítés után törli a forrásfürtöt, a memstoresban lévő adatokat 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 memstoreját a lemezre.

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

    A memstore-adatokat a HDInsight-fürt következő HBase-rendszerhéj-parancsának futtatásával is kiürítheti:

    hbase shell
    flush "<table-name>"
    
  3. Jelentkezzen be az Apache Ambariba a forrásfürtön a következővel https://<OLDCLUSTERNAME>.azurehdinsight.net: , és állítsa le a HBase-szolgáltatásokat.

  4. A megerősítést kérő üzenetben válassza a jelölőnégyzetet a HBase karbantartási módjának 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én.

  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 biztonsági másolatot kell készíteni a WAL-címtárról a HDFS alatt az alábbi parancsok futtatásával egy SSH-munkamenetből a forrásfürt Bármelyik Zookeeper-csomópontján vagy munkavégző 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. A Azure Portal állítson be egy új cél HDInsight-fürtöt a forrásfürttel megegyező tárfiókkal, de egy másik tárolónévvel:

  2. Jelentkezzen be az Apache Ambariba az új fürtön a címen https://<NEWCLUSTERNAME>.azurehdinsight.net, és állítsa le a HBase-szolgáltatásokat.

  3. A Services>HDFS>Configs>Advanced>Advanced core-site területen 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 Services > HDFS > Configs > Advanced > Core-site 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 utat úgy, hogy az az eredeti forrásfürt-tároló nevére mutasson. Az alábbi elérési utat például a következőre kell módosítani: 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 a következő 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

Futtassa a következő parancsokat a forrás HDI-verziójától, valamint attól függően, hogy a forrás- és célfürtök rendelkeznek-e gyorsított írási folyamatokkal.

  • A célfürt mindig a HDI 4.0-s verziója, mivel a HDI 3.6 alapszintű támogatásban van, és nem ajánlott új fürtökhöz.
  • 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 következő wasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net: .
  • A <source-container-fullpath> tárolótípus Azure Data Lake Storage Gen2 a következőabfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net: .

A forrásfürt a HDI 3.6 vagy a HDI 4.0 gyorsított írásokkal, a célfürt pedig gyorsított írási folyamatokkal 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 ki a könyvtárat a következő parancsok futtatásával a célfürt bármely Zookeeper-csomópontján vagy munkavégző 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ási folyamatokkal 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 ki a könyvtárat a következő parancsok futtatásával a célfürt bármely Zookeeper-csomópontján vagy munkavégző 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, és a célfürt nem rendelkezik gyorsított írási műveletekkel

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 munkavégző 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ási folyamatokkal 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 ki a könyvtárat a következő parancsok futtatásával a célfürt bármely Zookeeper-csomópontján vagy munkavégző 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, és a célfürt nem rendelkezik gyorsított írási műveletekkel

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 munkavégző 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. sudo -u hdfs A felhasználói környezet használatával másolja át a mappát /hdp/apps/<new-version-name> és annak tartalmát a <destination-container-fullpath> mappából a mappába<source-container-fullpath>./hdp/apps 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. Mutasson az alkalmazásra 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-et a tartománynév DNS-beállításaiban, amely a fürt nevére mutat. Másik lehetőségként használhat egy konfigurációs fájlt az alkalmazáshoz, amelyet újratelepítés nélkül frissíthet.

  4. Indítsa el a betöltési elemet.

  5. Ellenőrizze a HBase konzisztenciáját, valamint az egyszerű adatdefiníciós nyelv (DDL) és az adatkezelési 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 migrate-hbase-source.sh szkriptet 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 WALs-eit a migrálás részeként; Ezért a szkriptek nem használhatók olyan fürtökön, amelyeken engedélyezve van a HBase biztonsági mentési vagy replikációs funkciója.

  2. 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 talál további információt: