Migrasi klaster Apache HBase ke versi baru
Artikel ini membahas cara memperbarui klaster Apache HBase Anda di Azure HDInsight ke versi yang lebih baru.
Artikel ini hanya berlaku jika Anda menggunakan akun Azure Storage yang sama untuk klaster sumber dan tujuan Anda. Untuk memutakhirkan dengan akun Penyimpanan baru atau berbeda untuk klaster tujuan Anda, lihat Memigrasikan Apache HBase ke versi baru dengan akun Penyimpanan baru.
Waktu henti saat proses peningkatan hanya beberapa menit saja. Waktu henti ini disebabkan oleh langkah-langkah untuk menghapus semua data dalam memori, dan waktu untuk mengonfigurasi dan memulai ulang layanan pada klaster baru. Hasil Anda akan bervariasi, tergantung pada jumlah node, jumlah data, dan variabel lainnya.
Meninjau kompatibilitas Apache HBase
Sebelum peningkatan Apache HBase, pastikan versi HBase pada klaster sumber dan tujuan kompatibel. Tinjau matriks kompatibilitas versi HBase dan catatan rilis pada Panduan Referensi HBase untuk memastikan aplikasi Anda kompatibel dengan versi baru.
Berikut ini adalah contoh matriks kompatibilitas. Y menunjukkan kompatibilitas dan N menunjukkan potensi inkompatibilitas:
Jenis kompatibilitas | Versi utama | Versi minor | Patch |
---|---|---|---|
Kompatibilitas kawat Klien-Server | N | Y | Y |
Kompatibilitas Server-Server | N | Y | Y |
Kompatibilitas format file | N | Y | Y |
Kompatibilitas API klien | N | Y | Y |
Kompatibilitas biner klien | N | N | Y |
Kompatibilitas API terbatas sisi-server | |||
Stabil | N | Y | Y |
Berkembang | N | N | Y |
Stabil | N | N | N |
Kompatibilitas dependensi | N | Y | Y |
Kompatibilitas operasional | N | N | Y |
Untuk informasi selengkapnya tentang versi dan kompatibilitas HDInsight, lihat Versi Azure HDInsight.
Gambaran umum migrasi klaster Apache HBase
Untuk meningkatkan kluster Apache HBase Anda di Azure HDInsight, selesaikan langkah-langkah dasar berikut. Untuk instruksi mendetail, lihat langkah dan perintah terperinci, atau gunakan skrip dari bagian Memigrasikan HBase menggunakan skrip untuk migrasi otomatis.
Siapkan klaster sumber:
- Hentikan penyerapan data.
- Hapus data memstore.
- Hentikan HBase dari portal Ambari.
- Untuk klaster dengan penulisan yang dipercepat, cadangkan direktori Write Ahead Log (WAL).
Siapkan klaster tujuan:
- Buat klaster tujuan.
- Hentikan HBase dari Ambari.
- Perbarui
fs.defaultFS
konfigurasi layanan HDFS untuk merujuk ke kontainer klaster sumber asli. - Untuk klaster dengan accelerated writes, perbarui
hbase.rootdir
konfigurasi layanan HBase untuk merujuk ke kontainer klaster sumber asli. - Bersihkan data Zookeeper.
Selesaikan migrasi:
- Bersihkan dan migrasikan WAL.
- Salin aplikasi dari kontainer default klaster tujuan ke kontainer sumber asli.
- Mulai semua layanan dari klaster tujuan Ambari.
- Verifikasi HBase.
- Hapus klaster sumber.
Langkah-langkah dan perintah migrasi terperinci
Gunakan langkah-langkah dan perintah terperinci ini untuk memigrasikan klaster Apache HBase Anda.
Siapkan klaster sumber
Hentikan penyerapan pada klaster HBase sumber.
Hapus klaster HBase sumber yang sedang Anda tingkatkan.
HBase menulis data yang masuk ke penyimpanan dalam memori, yang disebut memstore. Setelah memstore mencapai ukuran tertentu, HBase mengirimkannya ke disk untuk penyimpanan jangka panjang di akun penyimpanan klaster. Menghapus klaster sumber setelah peningkatan juga akan menghapus semua data di memstores. Untuk menyimpan data, hapus setiap memstore tabel secara manual ke disk sebelum peningkatan.
Anda dapat menghapus data memstore dengan menjalankan flush_all_tables.sh skrip dari repositori Azure hbase-utils GitHub.
Anda juga dapat menghapus data memstore dengan menjalankan perintah shell HBase berikut dari klaster HDInsight:
hbase shell flush "<table-name>"
Masuk ke Apache Ambari pada klaster sumber dengan
https://<OLDCLUSTERNAME>.azurehdinsight.net
, dan hentikan layanan HBase.Ketika konfirmasi diminta, pilih kotak untuk mengaktifkan mode pemeliharaan pada HBase.
Untuk informasi selengkapnya tentang terhubung ke dan penggunaan Ambari, lihat Mengelola klaster HDInsight dengan menggunakan Ambari Web UI.
Jika klaster HBase sumber Anda tidak memiliki fitur Penulisan yang Dipercepat, lewati langkah ini. Untuk klaster HBase sumber dengan Accelerated Writes, cadangkan direktori WAL di bawah HDFS dengan menjalankan perintah berikut dari sesi SSH pada salah satu simpul Zookeeper atau simpul pekerja dari klaster sumber.
hdfs dfs -mkdir /hbase-wal-backup hdfs dfs -cp hdfs://mycluster/hbasewal /hbase-wal-backup
Siapkan klaster tujuan
Di portal Microsoft Azure, siapkan klaster HDInsight tujuan baru menggunakan akun penyimpanan yang sama dengan klaster sumber, tetapi dengan nama kontainer yang berbeda:
Masuk ke Apache Ambari pada klaster baru di
https://<NEWCLUSTERNAME>.azurehdinsight.net
, dan hentikan layanan HBase.Di bawah Layanan>HDFS>Mengonfigurasi>Tingkat Lanjut>Situs inti Tingkat Lanjut, ubah
fs.defaultFS
pengaturan HDFS untuk menunjuk ke nama kontainer klaster sumber asli. Misalnya, pengaturan dalam cuplikan layar berikut harus diubah menjadiwasbs://hbase-upgrade-old-2021-03-22
.Jika klaster tujuan Anda memiliki fitur Accelerated Writes, ubah
hbase.rootdir
jalur untuk menunjuk ke nama kontainer klaster sumber asli. Misalnya, jalur berikut harus diubah menjadihbase-upgrade-old-2021-03-22
. Jika klaster Anda tidak memiliki Accelerated Writes, lewati langkah ini.Bersihkan data Zookeeper pada klaster tujuan dengan menjalankan perintah berikut di simpul Zookeeper atau simpul pekerja:
hbase zkcli rmr /hbase-unsecure quit
Bersihkan dan migrasikan WAL
Jalankan perintah berikut, tergantung pada versi HDI sumber Anda dan apakah klaster sumber dan tujuan memiliki Accelerated Writes (Penulisan yang Dipercepat).
- Klaster tujuan selalu HDI versi 4.0, karena HDI 3.6 berada dalam Dukungan dasar dan tidak direkomendasikan untuk klaster baru.
- Perintah salinan HDFS adalah
hdfs dfs <copy properties starting with -D> -cp <source> <destination> # Serial execution
.
Catatan
- Untuk
<source-container-fullpath>
jenis penyimpanan WASB adalahwasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net
. - Untuk
<source-container-fullpath>
jenis penyimpanan Azure Data Lake Storage Gen2 adalahabfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net
.
- Klaster sumber adalah HDI 3.6 dengan Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes.
- Klaster sumber adalah HDI 3.6 tanpa Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes.
- Klaster sumber adalah HDI 3.6 tanpa Accelerated Writes dan klaster tujuan tidak memiliki Accelerated Writes.
- Klaster sumber adalah HDI 4.0 dengan Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes.
- Klaster sumber adalah HDI 4.0 tanpa Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes.
- Klaster sumber adalah HDI 4.0 tanpa Accelerated Writes, dan klaster tujuan tidak memiliki Accelerated Writes.
Klaster sumber adalah HDI 3.6 atau HDI 4.0 dengan Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes
Bersihkan data WAL FS untuk klaster tujuan, dan salin direktori WAL dari klaster sumber ke dalam HDFS klaster tujuan. Salin direktori dengan menjalankan perintah berikut di simpul Zookeeper atau simpul pekerja pada klaster tujuan:
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/
Klaster sumber adalah HDI 3.6 tanpa Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes
Bersihkan data WAL FS untuk klaster tujuan, dan salin direktori WAL dari klaster sumber ke dalam HDFS klaster tujuan. Salin direktori dengan menjalankan perintah berikut di simpul Zookeeper atau simpul pekerja pada klaster tujuan:
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
Klaster sumber adalah HDI 3.6 tanpa Accelerated Writes, dan klaster tujuan tidak memiliki Accelerated Writes
Bersihkan data WAL FS untuk klaster tujuan, dan salin direktori WAL klaster sumber ke dalam HDFS klaster tujuan. Untuk menyalin direktori, jalankan perintah berikut di simpul Zookeeper atau simpul pekerja pada klaster tujuan:
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
Klaster sumber adalah HDI 4.0 tanpa Accelerated Writes, dan klaster tujuan memiliki Accelerated Writes
Bersihkan data WAL FS untuk klaster tujuan, dan salin direktori WAL dari klaster sumber ke dalam HDFS klaster tujuan. Salin direktori dengan menjalankan perintah berikut di simpul Zookeeper atau simpul pekerja pada klaster tujuan:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wals/* hdfs://mycluster/hbasewal
Klaster sumber adalah HDI 4.0 tanpa Accelerated Writes, dan klaster tujuan tidak memiliki Accelerated Writes
Bersihkan data WAL FS untuk klaster tujuan, dan salin direktori WAL klaster sumber ke dalam HDFS klaster tujuan. Untuk menyalin direktori, jalankan perintah berikut di simpul Zookeeper atau simpul pekerja pada klaster tujuan:
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 /
Menyelesaikan migrasi
Dengan menggunakan
sudo -u hdfs
konteks pengguna, salin folder/hdp/apps/<new-version-name>
dan kontennya dari<destination-container-fullpath>
ke/hdp/apps
folder ke bawah<source-container-fullpath>
. Anda bisa menyalin folder dengan menjalankan perintah berikut pada klaster tujuan:sudo -u hdfs hdfs dfs -cp /hdp/apps/<hdi-version> <source-container-fullpath>/hdp/apps
Contohnya:
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
Pada klaster tujuan, simpan perubahan Anda, dan hidupkan ulang semua layanan yang diperlukan seperti yang ditunjukkan Ambari.
Arahkan aplikasi Anda ke klaster tujuan.
Catatan
Nama DNS statik untuk aplikasi Anda berubah saat Anda melakukan peningkatan. Daripada membuat kode permanen (hard-coding) untuk nama DNS ini, Anda bisa mengonfigurasi CNAME pada pengaturan DNS nama domain Anda yang menunjuk ke nama klaster. Opsi lain adalah menggunakan file konfigurasi untuk aplikasi yang dapat Anda perbarui tanpa melakukan penyebaran ulang.
Mulai penyerapan.
Verifikasi konsistensi HBase dan operasi Bahasa Definisi Data (Data Definition Language/DDL) dan Bahasa Manipulasi Data (Data Manipulation Language/DML) sederhana.
Jika klaster tujuan memuaskan, hapus klaster sumber.
Memigrasikan HBase menggunakan skrip
Jalankan migrate-hbase-source.sh skrip pada kluster sumber dan migrate-hbase-dest.sh pada kluster tujuan. Gunakan instruksi berikut untuk menjalankan skrip ini.
Catatan
Skrip ini tidak menyalin WAL lama HBase sebagai bagian dari migrasi; oleh karena itu, skrip tidak akan digunakan pada kluster yang mengaktifkan fitur HBase Backup atau Replikasi.
Pada kluster sumber
sudo bash migrate-hbase-source.sh
Pada kluster tujuan
sudo bash migrate-hbase-dest.sh -f <src_default_Fs>
Argumen wajib untuk perintah di atas:
-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
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Apache HBase dan peningkatan klaster HDInsight, lihat artikel berikut ini:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk