Mereplikasi dari HBase ke Bigtable
Library replikasi HBase Cloud Bigtable adalah komponen dari klien Cloud Bigtable HBase open source untuk Java. Dengan library replikasi, Anda dapat mereplikasi data secara asinkron dari cluster HBase ke instance Bigtable menggunakan layanan replikasi HBase. Untuk meninjau README dan kode sumber, buka repositori GitHub.
Kasus penggunaan
- Migrasi online ke Bigtable - Anda dapat menggunakan library replikasi HBase Bigtable, bersama dengan migrasi offline dari data HBase yang ada, untuk bermigrasi dari HBase ke Bigtable tanpa periode nonaktif.
- Pemulihan data - Bersiaplah menghadapi hal yang tidak terduga dengan mereplikasi data HBase ke instance Bigtable di luar lokasi.
- Memusatkan set data - Gunakan library untuk mereplikasi data dari cluster HBase di beberapa lokasi ke satu instance Bigtable yang secara otomatis menangani replikasi di antara cluster-nya.
- Memperluas jejak HBase Anda - Buat replikasi ke instance Bigtable yang memiliki cluster di lokasi di luar lokasi HBase Anda saat ini.
Ringkasan
Library replikasi HBase Bigtable memperluas layanan replikasi HBase dasar. Data yang ditulis ke cluster HBase direplikasi secara asinkron ke instance Bigtable dengan cara yang sama seperti replikasi HBase standar yang menyalin data ke cluster HBase lainnya. Library ini menggunakan write-ahead log (WAL) dari cluster HBase sumber untuk mendorong mutasi ke instance Bigtable.
Anda dapat mereplikasi seluruh cluster HBase ke Bigtable atau hanya mereplikasi tabel atau grup kolom tertentu. Dengan kata lain, replikasi HBase diaktifkan pada tingkat cluster, tabel, atau kolom.
Replikasi dari HBase ke Bigtable akan konsisten.
Bermigrasi ke Bigtable
Dengan library replikasi HBase Bigtable, Anda dapat bermigrasi ke Bigtable tanpa menjeda aplikasi.
Pada level yang tinggi, langkah-langkah untuk migrasi online dari HBase ke Bigtable adalah sebagai berikut. Lihat README untuk detail selengkapnya.
- Sebelum memulai, ikuti langkah penyiapan dan konfigurasi.
- Aktifkan replikasi di cluster HBase Anda.
- Tambahkan endpoint replikasi Bigtable sebagai peer.
- Nonaktifkan peer Bigtable. Hal ini menyebabkan penulisan ke HBase dari titik tersebut dan seterusnya menjadi buffer di cluster HBase.
- Setelah buffering mulai merekam penulisan baru, ikuti panduan migrasi offline untuk memigrasikan snapshot data HBase yang ada.
- Setelah migrasi offline selesai, aktifkan kembali peer Bigtable agar buffer dapat menguras dan memutar ulang penulisan di Bigtable.
- Setelah buffer habis, mulai ulang aplikasi Anda untuk mengirim permintaan ke Bigtable.
Menyiapkan dan mengonfigurasi library replikasi
Sebelum dapat menggunakan replikasi HBase Bigtable, Anda perlu menyelesaikan tugas di bagian ini.
Mengonfigurasi autentikasi
Untuk memastikan library replikasi memiliki izin untuk menulis ke Bigtable, ikuti langkah-langkah di bagian Membuat akun layanan. Tetapkan roles/bigtable.user peran ke akun layanan yang baru dibuat.
Selanjutnya, tambahkan kode berikut ke file hbase-site.xml
Anda di seluruh cluster HBase.
<property>
<name>google.bigtable.auth.json.keyfile</name>
<value>JSON_FILE_PATH</value>
<description>
Service account JSON file to connect to Cloud Bigtable
</description>
</property>
Ganti JSON_FILE_PATH
dengan jalur ke file JSON yang telah Anda download.
Untuk properti tambahan yang dapat Anda tetapkan, lihat HBaseToCloudBigtableReplicationConfiguration.
Membuat instance dan tabel tujuan
Sebelum dapat mereplikasi dari HBase ke Bigtable, buat instance Bigtable. Instance Bigtable dapat memiliki satu atau beberapa kluster yang beroperasi secara multi-utama. Permintaan dari layanan replikasi HBase dirutekan ke cluster terdekat di instance Bigtable, lalu direplikasi ke cluster lain dalam instance tersebut.
Tabel tujuan Bigtable Anda harus memiliki nama dan kelompok kolom yang sama dengan tabel HBase. Untuk petunjuk langkah demi langkah penggunaan alat Penerjemahan Skema Bigtable untuk membuat tabel dengan skema yang sama dengan tabel HBase, lihat Membuat tabel tujuan. Meskipun Anda mereplikasi, bukan mengimpor data, langkah-langkahnya tetap sama.
Menetapkan properti konfigurasi
Tambahkan kode berikut ke hbase-site.xml
di seluruh cluster HBase.
<property>
<name>google.bigtable.project.id</name>
<value>PROJECT_ID</value>
<description>
Bigtable project ID
</description>
</property>
<property>
<name>google.bigtable.instance.id</name>
<value>INSTANCE_ID</value>
<description>
Bigtable instance ID
</description>
</property>
<property>
<name>google.bigtable.app_profile.id</name>
<value>APP_PROFILE_ID</value>
<description>
Bigtable app profile ID
</description>
</property>
Ganti kode berikut:
PROJECT_ID
: Project Google Cloud tempat instance Bigtable Anda berada.INSTANCE_ID
: ID instance Bigtable tempat Anda mereplikasi data.APP_PROFILE_ID
: ID profil aplikasi yang akan digunakan untuk terhubung ke Bigtable.
Menginstal library replikasi
Untuk menggunakan library replikasi HBase Bigtable, Anda harus menginstalnya di setiap server di cluster HBase. Gunakan versi library replikasi yang sesuai dengan versi HBase (1.x atau 2.x).
Mendownload JAR
Untuk mendapatkan library replikasi, jalankan perintah berikut di shell HBase.
wget BIGTABLE_HBASE_REPLICATION_URL
Ganti BIGTABLE_HBASE_REPLICATION_URL
dengan URL
JAR terbaru dengan dependensi yang tersedia di repositori Maven
library replikasi. Nama filenya mirip dengan
https://repo1.maven.org/maven2/com/google/cloud/bigtable/bigtable-hbase-1.x-replication/1.0.0/bigtable-hbase-1.x-replication-1.0.0-jar-with-dependencies.jar
.
Untuk menemukan URL atau mendownload JAR secara manual, lakukan langkah berikut.
- Buka repositori library replikasi untuk versi HBase yang Anda gunakan.
- Klik nomor versi terbaru, misalnya
1.0.0
. - Identifikasi file jar-with-dependency (biasanya di bagian atas).
- Klik kanan dan salin URL, atau klik untuk mendownload file.
Menginstal JAR
Di setiap server HBase, termasuk server master dan region, salin file yang baru saja Anda download ke folder di classpath HBase. Misalnya,
Anda dapat menyalin file ke /usr/lib/hbase/lib/
.
Menambahkan peer Bigtable
Untuk mereplikasi dari HBase ke Bigtable, Anda perlu menambahkan endpoint Bigtable sebagai peer replikasi.
- Mulai ulang server HBase untuk memastikan library replikasi dimuat.
- Jalankan perintah berikut di shell HBase.
add_peer PEER_ID_NUMBER, ENDPOINT_CLASSNAME =>
'com.google.cloud.bigtable.hbaseHBASE_VERSION_NUMBER_x.replication.HbaseToCloudBigtableReplicationEndpoint`
Ganti kode berikut:
PEER_ID_NUMBER
: ID bilangan bulat untuk peer replikasi Bigtable. Untuk mengaktifkan replikasi HBase hanya untuk tabel tertentu, gunakan parameter opsionaladd_peer
.HBASE_VERSION_NUMBER
: Nomor versi HBase yang Anda gunakan. Gunakan1
untuk HBase 1.x dan2
untuk HBase 2.x. (HBase 3.x tidak didukung.)
Langkah selanjutnya
- Tinjau ringkasan model penyimpanan, arsitektur, dan fitur Bigtable.
- Pelajari beberapa perbedaan antara HBase dan Bigtable.