Replica da HBase a Bigtable
La libreria di replica HBase di Cloud Bigtable è 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, in modo da poter eseguire una migrazione online da HBase a Bigtable. Per esaminare il file README e il codice sorgente, visita il repository GitHub.
Per la migrazione offline da HBase a Bigtable, vedi Eseguire la migrazione dei dati da HBase a Bigtable offline.
Casi d'uso
- Migrazione online a Bigtable: puoi utilizzare la libreria di replica Bigtable HBase, insieme a una migrazione offline dei dati HBase esistenti, per eseguire la migrazione da HBase a Bigtable con tempi di inattività quasi nulli.
- Recupero dei dati: preparati agli imprevisti replicando i tuoi dati HBase in un'istanza Bigtable esterna.
- Centralizzazione dei set di dati: utilizza la libreria per replicare i dati dai cluster HBase in più località in una singola istanza Bigtable che gestisce automaticamente la replica tra i cluster.
- Estensione dell'impronta di HBase: esegui la replica in un'istanza Bigtable con cluster in località diverse da quelle HBase attuali.
Panoramica
La libreria di replica HBase di Bigtable 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 write-ahead log (WAL) del cluster HBase di origine per eseguire il push delle mutazioni nell'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 è a coerenza finale.
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.
A livello generale, i passaggi per la migrazione online da HBase a Bigtable sono i seguenti. Per ulteriori dettagli, consulta il file README.
- Prima di iniziare, segui i passaggi di configurazione.
- Abilita la replica sul cluster HBase.
- Aggiungi un endpoint di replica Bigtable come peer.
- Disattiva il peer Bigtable. In questo modo, le scritture in HBase da quel momento in poi vengono memorizzate nel buffer del cluster HBase.
- Una volta avviata la memorizzazione nel buffer per acquisire le nuove scritture, segui la guida alla migrazione offline per eseguire la migrazione di uno snapshot dei dati HBase esistenti.
- Al termine della migrazione offline, riattiva il peer Bigtable per consentire lo svuotamento del buffer e la riproduzione delle scritture su Bigtable.
- Una volta svuotato il buffer, riavvia l'applicazione per inviare richieste a Bigtable.
Configura la libreria di replica
Prima di poter utilizzare la replica Bigtable HBase, devi completare le attività descritte in questa sezione.
Configura l'autenticazione
Per assicurarti che la libreria di replica abbia l'autorizzazione di scrittura su Bigtable, segui i passaggi descritti in Creare un service account. Assegna il ruolo roles/bigtable.user al account di servizio appena creato.
Successivamente, 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, vedi HBaseToCloudBigtableReplicationConfiguration.
Crea un'istanza e delle 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-primaria. Le richieste del servizio di replica HBase vengono indirizzate 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 passo passo su come utilizzare lo strumento di traduzione dello schema Bigtable per creare una tabella con lo stesso schema della tabella HBase, consulta Migrazione offline dei dati da HBase a Bigtable. Anche se stai replicando, anziché importando 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 Google Cloud progetto in cui si trova l'istanza Bigtable.INSTANCE_ID
: l'ID dell'istanza Bigtable in cui stai replicando i dati.APP_PROFILE_ID
: l'ID del profilo app da utilizzare per connettersi a Bigtable.
Installare 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 che corrisponde alla tua versione di HBase (1.x o 2.x).
Scarica il file 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 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:
- Vai al repository della libreria di replica per la versione di HBase che stai utilizzando.
- Fai clic sul numero di versione più recente, ad esempio
1.0.0
. - Identifica il file jar-with-dependencies (di solito in alto).
- Fai clic con il tasto destro del mouse e copia l'URL oppure fai clic per scaricare il file.
Installare il file JAR
Su ogni server HBase, inclusi i server master e di regione, copia il file
che hai appena scaricato in una cartella nel classpath HBase. Ad esempio,
potresti 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.
- Riavvia i server HBase per assicurarti che la libreria di replica sia caricata.
- Esegui il comando riportato di seguito 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 tabelle selezionate, utilizza un parametro facoltativoadd_peer
.HBASE_VERSION_NUMBER
: il numero della versione di HBase che stai utilizzando. Utilizza1
per HBase 1.x e2
per HBase 2.x. (HBase 3.x non è supportato.)
Passaggi successivi
- Esamina una panoramica del modello di archiviazione, dell'architettura e delle funzionalità di Bigtable.
- Scopri alcune delle differenze tra HBase e Bigtable.