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, sehingga Anda dapat melakukan migrasi online dari HBase ke Bigtable. Untuk meninjau README dan kode sumber, buka repositori GitHub.

Untuk migrasi offline dari HBase ke Bigtable, lihat Memigrasikan data dari HBase ke Bigtable secara offline.

Kasus penggunaan

  • Migrasi online ke Bigtable - Anda dapat menggunakan library replikasi HBase Bigtable, bersama dengan migrasi offline data HBase yang ada, untuk melakukan migrasi dari HBase ke Bigtable dengan hampir tanpa periode nonaktif.
  • Pemulihan data - Bersiaplah menghadapi hal tak 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 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 menyalin data ke cluster HBase lain. Library ini menggunakan write-ahead log (WAL) cluster HBase sumber untuk mengirimkan mutasi ke instance Bigtable.

Anda dapat mereplikasi seluruh cluster HBase ke Bigtable atau mereplikasi hanya 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 HBase Bigtable memungkinkan Anda bermigrasi ke Bigtable tanpa menjeda aplikasi.

Secara umum, langkah-langkah untuk migrasi online dari HBase ke Bigtable adalah sebagai berikut. Lihat README untuk mengetahui detail selengkapnya.

  1. Sebelum memulai, ikuti 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 di-buffer pada cluster HBase.
  5. Setelah buffering dimulai untuk merekam penulisan baru, ikuti panduan migrasi offline untuk memigrasikan snapshot data HBase yang ada.
  6. Setelah migrasi offline selesai, aktifkan kembali peer Bigtable untuk mengizinkan pengurasan buffer dan pemutaran ulang penulisan di Bigtable.
  7. Setelah buffer dikosongkan, mulai ulang aplikasi Anda untuk mengirim permintaan ke Bigtable.

Menyiapkan dan mengonfigurasi library replikasi

Sebelum dapat menggunakan replikasi HBase Bigtable, Anda harus menyelesaikan tugas-tugas di bagian ini.

Mengonfigurasi autentikasi

Untuk memastikan bahwa 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 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 Anda download.

Untuk mengetahui 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 secara multi-primer. Permintaan dari layanan replikasi HBase dirutekan ke cluster terdekat di instance Bigtable, lalu direplikasi ke cluster lain di instance tersebut.

Tabel tujuan Bigtable Anda harus memiliki nama dan kolom yang sama dengan tabel HBase Anda. Untuk mengetahui petunjuk langkah demi langkah tentang cara menggunakan alat Terjemahan Skema Bigtable untuk membuat tabel dengan skema yang sama dengan tabel HBase Anda, lihat Memigrasikan data dari HBase ke Bigtable secara offline. Meskipun Anda mereplikasi, bukan mengimpor data, langkah-langkahnya 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: Google Cloud Project tempat instance Bigtable Anda berada.
  • INSTANCE_ID: ID instance Bigtable yang akan Anda gunakan untuk 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 dalam cluster HBase. Gunakan versi library replikasi yang sesuai dengan versi HBase Anda (1.x atau 2.x).

Download 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 hal 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.

Instal 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 harus menambahkan endpoint Bigtable sebagai peer replikasi.

  1. Mulai ulang server HBase untuk memastikan bahwa 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 berikutnya