Esegui la 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 GitHub.

Casi d'uso

  • Migrazione online a Bigtable: puoi utilizzare la libreria di replica Bigtable HBase, in combinazione con una migrazione offline dei dati HBase esistenti, per eseguire la migrazione da HBase a Bigtable con quasi nessun tempo di inattività.
  • Recupero dei dati: preparati all'imprevisto replicando i dati HBase in un'istanza Bigtable offsite.
  • Centralizzazione dei set di dati: utilizza la libreria per replicare i dati dai cluster HBase in più posizioni in un'unica istanza Bigtable che gestisce automaticamente la replica tra i suoi cluster.
  • Estensione dell'impronta di HBase: esegui la replica in un'istanza Bigtable con cluster in località diverse da quelle attuali di HBase.

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 WAL (write-ahead log) del cluster HBase di origine per inviare le mutazioni all'istanza Bigtable.

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

La replica da HBase a Bigtable è a coerenza finale.

immagine

Esegui la migrazione a Bigtable

La libreria di replica Bigtable HBase 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 configurazione e installazione.
  2. Abilita la replica nel cluster HBase.
  3. Aggiungi un endpoint di replica Bigtable come peer.
  4. Disattiva il peer Bigtable. Di conseguenza, le scritture su HBase da quel punto in poi vengono messe in buffer sul cluster HBase.
  5. Una volta iniziato il buffering per 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 consentire lo svuotamento del buffer e la riproduzione delle scritture su Bigtable.
  7. Una volta svuotato il buffer, riavvia l'applicazione per inviare richieste a Bigtable.

Configura la libreria di replica

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

Configura autenticazione

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

Aggiungi quanto segue al 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 altre proprietà che puoi impostare, consulta HBaseToCloudBigtableReplicationConfiguration.

Crea un'istanza e tabelle di destinazione

Prima di poter eseguire la replica da HBase a Bigtable, crea un'istanza Bigtable. Un'istanza Bigtable può avere uno o più cluster che operano in modalità multi-principale. Le richieste del servizio di replica HBase vengono inoltrate 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 su come utilizzare lo strumento di traduzione dello schema Bigtable per creare una tabella con lo stesso schema della tabella HBase, consulta Creare tabelle di destinazione. Anche se stai replicando i dati anziché importarli, 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 la tua 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 del cluster HBase. Utilizza la versione della libreria di replica corrispondente alla versione di HBase (1.x o 2.x).

Scarica il file JAR

Per ottenere la libreria di replica, esegui il seguente comando 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 file JAR:

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

Installa il file JAR

Su ogni server HBase, inclusi i server master e di regione, copia il file appena scaricato in una cartella nel percorso di classe HBase. Ad esempio, puoi copiare il file in /usr/lib/hbase/lib/.

Aggiungere un peer Bigtable

Per eseguire la replica 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 quanto segue nella shell 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 intero per il peer di replica Bigtable. Per attivare la replica HBase solo di alcune tabelle, utilizza un parametro facoltativo add_peer.

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

Passaggi successivi