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.

gambar

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.

  1. Sebelum memulai, ikuti langkah-langkah penyiapan dan konfigurasi.
  2. Aktifkan replikasi di cluster HBase Anda.
  3. Tambahkan endpoint replikasi Bigtable sebagai peer.
  4. Nonaktifkan peer Bigtable. Hal ini menyebabkan penulisan ke HBase dari titik tersebut dan seterusnya dibuffer di cluster HBase.
  5. Setelah buffering mulai merekam penulisan baru, ikuti panduan migrasi offline untuk memigrasikan snapshot data HBase yang ada.
  6. Setelah migrasi offline selesai, aktifkan kembali peer Bigtable untuk membiarkan buffer habis dan memutar ulang operasi tulis di Bigtable.
  7. 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.

  1. Buka repositori library replikasi untuk versi HBase yang Anda gunakan.
  2. Klik nomor versi terbaru, seperti 1.0.0.
  3. Identifikasi file jar-with-dependencies (biasanya di bagian atas).
  4. 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.

  1. Mulai ulang server HBase untuk memastikan library replikasi dimuat.
  2. 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 opsional add_peer.

  • HBASE_VERSION_NUMBER: Nomor versi HBase yang Anda gunakan. Gunakan 1 untuk HBase 1.x dan 2 untuk HBase 2.x. (HBase 3.x tidak didukung.)

Langkah selanjutnya