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


Migrate Apache HBase to a new version and storage account

Ez a cikk azt ismerteti, hogyan frissítheti az Apache HBase-fürtöt az Azure HDInsightban egy újabb verzióra egy másik Azure Storage-fiókkal.

Ez a cikk csak akkor érvényes, ha különböző Storage-fiókokat kell használnia a forrás- és célfürtökhöz. Ha a forrás- és célfürtökhöz ugyanazzal a Tárfiókkal szeretné frissíteni a verziókat, olvassa el az Apache HBase áttelepítése új verzióra 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 összes memóriabeli adat kiürítésére vonatkozó lépések, valamint az új fürt szolgáltatásainak 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ó Alverzió Patch
Ü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
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 HBase-verzió kibocsátási megjegyzéseinek le kell írniuk az esetleges kompatibilitástörő inkompatibilitásokat. Tesztelje az alkalmazást a HDInsight és a HBase célverzióját futtató fürtön.

További információ a HDInsight-verziókról és a kompatibilitásról: 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 és új tárfiókba való migrálásához hajtsa végre az alábbi alapvető lépéseket. Részletes utasításokért tekintse meg a részletes lépéseket és parancsokat.

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

  1. Adatbetöltés leállítása.
  2. Adatok kiürítése memstore .
  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é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. A Zookeeper-adatok tisztítása.
  4. Felhasználó váltása HBase-re.

Végezze el a migrálást:

  1. Törölje a cél fájlrendszert, migrálja az adatokat, és távolítsa el /hbase/hbase.id.
  2. Törölje és migrálja a WAL-t.
  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

Ezekkel a részletes lépésekkel és parancsokkal migrálhatja az Apache HBase-fürtöt egy új tárfiókkal.

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 memóriabeli tárolóba, egy memstoreúgynevezett . Miután elérte a kívánt méretet, a memstore HBase a fürt tárfiókjában lévő hosszú távú tároló lemezére üríti. A forrásfürt törlése a frissítés után szintén törli a memstoresfájlban lévő adatokat. Az adatok megőrzéséhez a frissítés előtt manuálisan ürítse ki az egyes táblák lemezeit memstore .

    Az adatokat a memstore flush_all_tables.sh szkript hbase-utils GitHub-adattárból való futtatásával ürítheti ki.

    Az adatokat az memstore alábbi HBase-rendszerhéj parancs futtatásával is kiürítheti a HDInsight-fürtből:

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

  4. A megerősítést kérő párbeszédpanelen kapcsolja be a HBase karbantartási módját.

    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ási 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 készít a WAL-címtárról a HDFS alatt az alábbi parancsok futtatásával egy SSH-munkamenetből bármely forrásfürt 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 Portalon állítson be egy új cél HDInsight-fürtöt, amely a forrásfürtétől eltérő tárfiókot használ.

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

  3. 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
    
  4. A felhasználó váltása HBase-re a futtatással sudo su hbase.

A fájlrendszer és a WAL tisztítása és migrálása

Futtassa a következő parancsokat 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 gyorsított írással. 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 <container-endpoint-url> tárfiókhoz tartozó .https://<storageaccount>.blob.core.windows.net/<container-name> Adja át a tárfiók SAS-jogkivonatát az URL-cím végén.

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

Parancsok másolása

A HDFS másolási parancsa a következő: hdfs dfs <copy properties starting with -D> -cp

Jobb hadoop distcp teljesítményt nyújt, ha nem lapblobban lévő fájlokat másol: hadoop distcp <copy properties starting with -D>

A tárfiók kulcsának átadásához használja a következőt:

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

A HBase-adatfájlok másolásakor az AzCopy használatával is jobb teljesítményt érhet el.

  1. Futtassa az AzCopy parancsot:

    azcopy cp "<source-container-endpoint-url>/hbase" "<target-container-endpoint-url>" --recursive
    
  2. Ha a céltárfiók az Azure Blob Storage, végezze el ezt a lépést a másolás után. Ha a céltárfiók a Data Lake Storage Gen2, hagyja ki ezt a lépést.

    A Hadoop WASB-illesztő minden könyvtárnak megfelelő, 0 méretű speciális blobot használ. Az AzCopy kihagyja ezeket a fájlokat a másolás során. Egyes WASB-műveletek ezeket a blobokat használják, ezért létre kell hoznia őket a célfürtben. A blobok létrehozásához futtassa a következő Hadoop parancsot a célfürt bármely csomópontjáról:

    sudo -u hbase hadoop fs -chmod -R 0755 /hbase
    

Az AzCopyt az AzCopy használatának első lépéseiből töltheti le. További információ az AzCopy használatáról: azcopy copy.

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

  1. A fájlrendszer megtisztításához és az adatok áttelepítéséhez futtassa a következő parancsokat:

    hdfs dfs -rm -r /hbase 
    hadoop distcp <source-container-fullpath>/hbase /
    
  2. Eltávolítás hbase.id futtatással hdfs dfs -rm /hbase/hbase.id

  3. A WAL tisztításához és áttelepítéséhez futtassa a következő parancsokat:

    hdfs dfs -rm -r hdfs://<destination-cluster>/hbasewal
    hdfs dfs -cp <source-container-fullpath>/hbase-wal-backup/hbasewal hdfs://<destination-cluster>/hbasewal
    

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

  1. A fájlrendszer megtisztításához és az adatok áttelepítéséhez futtassa a következő parancsokat:

    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
    
  2. Eltávolítás hbase.id futtatással hdfs dfs -rm /hbase/hbase.id

  3. A WAL tisztításához és áttelepítéséhez futtassa a következő parancsokat:

    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
    

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

  1. A fájlrendszer megtisztításához és az adatok áttelepítéséhez futtassa a következő parancsokat:

    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
    
  2. Eltávolítás hbase.id futtatással hdfs dfs -rm /hbase/hbase.id

  3. A WAL tisztításához és áttelepítéséhez futtassa a következő parancsokat:

    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
    

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

  1. A fájlrendszer megtisztításához és az adatok áttelepítéséhez futtassa a következő parancsokat:

    hdfs dfs -rm -r /hbase 
    hadoop distcp <source-container-fullpath>/hbase /
    
  2. Eltávolítás hbase.id futtatással hdfs dfs -rm /hbase/hbase.id

  3. A WAL tisztításához és áttelepítéséhez futtassa a következő parancsokat:

    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
    

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

  1. A fájlrendszer megtisztításához és az adatok áttelepítéséhez futtassa a következő parancsokat:

    hdfs dfs -rm -r /hbase 
    hadoop distcp <source-container-fullpath>/hbase /
    
  2. Eltávolítás hbase.id futtatással hdfs dfs -rm /hbase/hbase.id

  3. A WAL tisztításához és áttelepítéséhez futtassa a következő parancsokat:

    hdfs dfs -rm -r /hbase-wals/*
    hdfs dfs -Dfs.azure.page.blob.dir="/hbase-wals" -cp <source-container-fullpath>/hbase-wals /
    

A migrálás befejezése

  1. Mentse a módosításokat a célfürtön, és indítsa újra az összes szükséges szolgáltatást az Ambari által jelzett módon.

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

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

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

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

További 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: