Mereplikasi dari HBase ke Bigtable
Library replikasi HBase Cloud Bigtable adalah komponen dari klien HBase Cloud Bigtable untuk Java open source. Library replikasi memungkinkan Anda 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 Bigtable HBase, bersama dengan migrasi offline data HBase yang ada, untuk bermigrasi dari HBase ke Bigtable dengan hampir tidak ada periode nonaktif.
- Pemulihan data - Bersiaplah menghadapi hal yang tidak terduga dengan mereplikasi data HBase Anda 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 clusternya.
- Memperluas jejak HBase Anda - Mereplikasi ke instance Bigtable yang memiliki cluster di lokasi di luar lokasi HBase Anda saat ini.
Ringkasan
Library replikasi Bigtable HBase 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 lain. Library ini menggunakan log write-ahead (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 di tingkat cluster, tabel, atau grup kolom.
Replikasi dari HBase ke Bigtable memiliki konsistensi tertunda.
Bermigrasi ke Bigtable
Library replikasi Bigtable HBase memungkinkan Anda bermigrasi ke Bigtable tanpa menjeda aplikasi.
Pada tingkat tinggi, langkah-langkah untuk migrasi online dari HBase ke Bigtable adalah sebagai berikut. Lihat README untuk mengetahui detail selengkapnya.
- Sebelum memulai, ikuti langkah-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 dibuffer 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 untuk membiarkan buffer habis dan memutar ulang operasi tulis di Bigtable.
- Setelah buffering habis, mulai ulang aplikasi untuk mengirim permintaan ke Bigtable.
Menyiapkan dan mengonfigurasi library replikasi
Sebelum dapat menggunakan replikasi HBase Bigtable, Anda perlu menyelesaikan tugas-tugas di bagian ini.
Mengonfigurasi autentikasi
Untuk memastikan library replikasi memiliki izin untuk menulis ke Bigtable, ikuti langkah-langkah di Membuat akun layanan. Tetapkan peran roles/bigtable.user ke akun layanan yang baru dibuat.
Selanjutnya, tambahkan kode berikut ke file hbase-site.xml
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
Anda download.
Untuk properti tambahan yang dapat Anda tetapkan, lihat HBaseToCloudBigtableReplicationConfiguration.
Membuat instance dan tabel tujuan
Sebelum Anda dapat mereplikasi dari HBase ke Bigtable, buat instance Bigtable. Instance Bigtable dapat memiliki satu cluster atau beberapa cluster yang beroperasi dalam mode multi-utama. Permintaan dari layanan replikasi HBase dirutekan ke cluster terdekat dalam instance Bigtable, lalu direplikasi ke cluster lain dalam instance.
Tabel tujuan Bigtable Anda harus memiliki nama dan keluarga kolom yang sama dengan tabel HBase. Untuk petunjuk langkah demi langkah tentang cara menggunakan alat Bigtable Schema Translation untuk membuat tabel dengan skema yang sama dengan tabel HBase Anda, lihat Membuat tabel tujuan. Meskipun Anda mereplikasi, bukan mengimpor data, langkah-langkahnya tetap sama.
Menetapkan properti konfigurasi
Tambahkan kode berikut ke hbase-site.xml
Anda 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 yang menjadi tujuan replika data Anda.APP_PROFILE_ID
: ID profil aplikasi yang akan digunakan untuk terhubung ke Bigtable.
Menginstal library replikasi
Untuk menggunakan library replikasi Bigtable HBase, Anda harus menginstalnya di setiap server di cluster HBase. Gunakan versi library replikasi yang sesuai dengan versi HBase Anda (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 tindakan berikut.
- Buka repositori library replikasi untuk versi HBase yang Anda gunakan.
- Klik nomor versi terbaru, seperti
1.0.0
. - Identifikasi file jar-with-dependencies (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, arsitektur, dan fitur penyimpanan Bigtable.
- Pelajari beberapa perbedaan antara HBase dan Bigtable.