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:
- Adatbetöltés leállítása.
- Adatok kiürítése
memstore
. - Állítsa le a HBase-t az Ambariból.
- 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:
- Hozza létre a célfürtöt.
- Állítsa le a HBase-t az Ambariból.
- A Zookeeper-adatok tisztítása.
- Felhasználó váltása HBase-re.
Végezze el a migrálást:
- Törölje a cél fájlrendszert, migrálja az adatokat, és távolítsa el
/hbase/hbase.id
. - Törölje és migrálja a WAL-t.
- Indítsa el az összes szolgáltatást az Ambari célfürtből.
- Ellenőrizze a HBase-t.
- 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
Állítsa le a forrás HBase-fürtbe való betöltést.
Ü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, amemstore
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 amemstores
fá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 lemezeitmemstore
.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>"
Jelentkezzen be az Apache Ambariba a forrásfürtön
https://<OLDCLUSTERNAME>.azurehdinsight.net
, és állítsa le a HBase-szolgáltatásokat.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.
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
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.
Jelentkezzen be az Apache Ambariba az új fürtön,
https://<NEWCLUSTERNAME>.azurehdinsight.net
és állítsa le a HBase-szolgáltatásokat.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
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 forrásfürt a HDI 3.6 gyorsított írásokkal, a célfürt pedig gyorsított írásokkal rendelkezik.
- A forrásfürt HDI 3.6 gyorsított írások nélkül, a célfürt pedig gyorsított írásokkal rendelkezik.
- A forrásfürt HDI 3.6 gyorsított írások nélkül, és a célfürt nem rendelkezik gyorsított írásokkal.
- A forrásfürt a HDI 4.0 gyorsított írásokkal, a célfürt pedig gyorsított írásokkal rendelkezik.
- A forrásfürt HDI 4.0 gyorsított írások nélkül, a célfürt pedig gyorsított írásokkal rendelkezik.
- A forrásfürt HDI 4.0 gyorsított írások nélkül, és a célfürt nem rendelkezik gyorsított írásokkal.
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 azabfs://<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.
Futtassa az AzCopy parancsot:
azcopy cp "<source-container-endpoint-url>/hbase" "<target-container-endpoint-url>" --recursive
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
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 /
Eltávolítás
hbase.id
futtatássalhdfs dfs -rm /hbase/hbase.id
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
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
Eltávolítás
hbase.id
futtatássalhdfs dfs -rm /hbase/hbase.id
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
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
Eltávolítás
hbase.id
futtatássalhdfs dfs -rm /hbase/hbase.id
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
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 /
Eltávolítás
hbase.id
futtatássalhdfs dfs -rm /hbase/hbase.id
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
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 /
Eltávolítás
hbase.id
futtatássalhdfs dfs -rm /hbase/hbase.id
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
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.
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.
Indítsa el a betöltési elemet.
Ellenőrizze a HBase konzisztenciáját és az egyszerű adatdefiníciós nyelv (DDL) és az adatmanipulációs nyelv (DML) műveleteit.
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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: