Replica da HBase a Bigtable

La libreria di replica Cloud Bigtable HBase è un componente del client Cloud Bigtable HBase per Java open source. La libreria di replica consente di replicare in modo asincrono i dati da un cluster HBase a un'istanza Bigtable utilizzando il servizio di replica HBase. Per esaminare il file README e il codice sorgente, visita il repository di GitHub.

Casi d'uso

  • Migrazione online a Bigtable: puoi utilizzare la libreria di replica HBase di Bigtable, insieme alla migrazione offline dei dati HBase esistenti, per eseguire la migrazione da HBase a Bigtable senza tempi di inattività.
  • Recupero dei dati: preparati agli imprevisti replicando i dati HBase su un'istanza Bigtable esterna.
  • Centralizzazione dei set di dati - Utilizza la libreria per replicare i dati da cluster HBase in più località a una singola istanza Bigtable che gestisce automaticamente la replica tra i cluster.
  • Estensione dell'impronta HBase - Replica in un'istanza Bigtable con cluster in località oltre le località HBase attuali.

Panoramica

La libreria di replica Bigtable HBase estende il servizio di replica HBase di base. I dati scritti in un cluster HBase vengono replicati in modo asincrono in un'istanza Bigtable, nello stesso modo in cui la replica HBase standard copia i dati in un altro cluster HBase. La libreria utilizza il log write-ahead (WAL) del cluster HBase di origine per eseguire il push delle mutazioni all'istanza Bigtable.

Puoi replicare un intero cluster HBase in Bigtable o replicare solo tabelle o famiglie di colonne specifiche. In altre parole, la replica HBase è abilitata a livello di cluster, tabella o famiglia di colonne.

La replica da HBase a Bigtable è fino alla coerenza.

immagine

Esegui la migrazione a Bigtable

La libreria di replica HBase di Bigtable ti consente di eseguire la migrazione a Bigtable senza mettere in pausa l'applicazione.

In linea generale, i passaggi per la migrazione online da HBase a Bigtable sono i seguenti. Per ulteriori dettagli, consulta il file README.

  1. Prima di iniziare, segui i passaggi di impostazione e configurazione.
  2. Abilita la replica sul tuo cluster HBase.
  3. Aggiungi un endpoint di replica Bigtable come peer.
  4. Disabilita il peer Bigtable. Da quel momento in poi, le scritture in HBase vengono memorizzate nel buffer sul cluster HBase.
  5. Una volta che il buffering ha iniziato ad acquisire nuove scritture, segui la guida alla migrazione offline per eseguire la migrazione di uno snapshot dei dati HBase esistenti.
  6. Al termine della migrazione offline, riattiva il peer Bigtable per scaricare il buffer e ripetere le scritture su Bigtable.
  7. Dopo aver svuotato il buffer, riavvia l'applicazione per inviare richieste a Bigtable.

Imposta e configura la libreria di replica

Prima di poter utilizzare la replica HBase di Bigtable, devi completare le attività in questa sezione.

Configura l'autenticazione

Per assicurarti che la libreria di replica abbia l'autorizzazione per scrivere in Bigtable, segui i passaggi descritti in Creare un account di servizio. Assegna il ruolo roles/bigtable.user all'account di servizio appena creato.

Quindi, aggiungi quanto segue al tuo file hbase-site.xml nell'intero 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>

Sostituisci JSON_FILE_PATH con il percorso del file JSON che hai scaricato.

Per ulteriori proprietà che puoi impostare, consulta HBaseToCloudBigtableReplicationConfiguration.

Crea un'istanza e le tabelle di destinazione

Per poter replicare da HBase a Bigtable, crea un'istanza Bigtable. Un'istanza Bigtable può avere uno o più cluster che operano in modo multi-primario. Le richieste del servizio di replica HBase vengono instradate al cluster più vicino nell'istanza Bigtable, quindi replicate negli altri cluster dell'istanza.

La tabella di destinazione Bigtable deve avere lo stesso nome e le stesse famiglie di colonne della tabella HBase. Per istruzioni dettagliate sull'utilizzo dello strumento Bigtable Schema Translation per creare una tabella con lo stesso schema della tabella HBase, consulta Creare tabelle di destinazione. Anche se esegui la replica, anziché importare i dati, i passaggi sono gli stessi.

Imposta le proprietà di configurazione

Aggiungi quanto segue a hbase-site.xml nell'intero 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>

Sostituisci quanto segue:

  • PROJECT_ID: il progetto Google Cloud in cui si trova l'istanza Bigtable.
  • INSTANCE_ID: l'ID dell'istanza Bigtable su cui stai replicando i dati.
  • APP_PROFILE_ID: l'ID del profilo dell'app da utilizzare per collegarti a Bigtable.

Installa la libreria di replica

Per utilizzare la libreria di replica Bigtable HBase, devi installarla su ogni server nel cluster HBase. Utilizza la versione della libreria di replica corrispondente alla tua versione HBase (1.x o 2.x).

Scarica il JAR

Per ottenere la libreria di replica, esegui il comando seguente nella shell HBase.

wget BIGTABLE_HBASE_REPLICATION_URL

Sostituisci BIGTABLE_HBASE_REPLICATION_URL con l'URL del JAR più recente con le dipendenze disponibili nel repository Maven della libreria di replica. Il nome del file è simile a 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.

Per trovare l'URL o scaricare manualmente il JAR:

  1. Vai al repository della libreria di replica per la versione di HBase che stai utilizzando.
  2. Fai clic sul numero della versione più recente, ad esempio 1.0.0.
  3. Identifica il file jar-with-dependencies (di solito all'inizio).
  4. Fai clic con il pulsante destro del mouse e copia l'URL oppure fai clic per scaricare il file.

Installa il JAR

Su ogni server HBase, inclusi i server master e di regione, copia il file che hai appena scaricato in una cartella in HBase classpath. Ad esempio, potresti copiare il file in /usr/lib/hbase/lib/.

Aggiungi un peer Bigtable

Per replicare da HBase a Bigtable, devi aggiungere un endpoint Bigtable come peer di replica.

  1. Riavvia i server HBase per assicurarti che la libreria di replica sia caricata.
  2. Esegui il comando seguente nella shell di HBase.
add_peer PEER_ID_NUMBER, ENDPOINT_CLASSNAME =>
'com.google.cloud.bigtable.hbaseHBASE_VERSION_NUMBER_x.replication.HbaseToCloudBigtableReplicationEndpoint`

Sostituisci quanto segue:

  • PEER_ID_NUMBER: un ID numero intero per il peer di replica di Bigtable. Per abilitare la replica HBase solo delle tabelle selezionate, utilizza un parametro facoltativo add_peer.

  • HBASE_VERSION_NUMBER: il numero della versione HBase in uso. Utilizza 1 per HBase 1.x e 2 per HBase 2.x. (HBase 3.x non è supportato.)

Passaggi successivi