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 HBase in un'istanza Bigtable utilizzando la replica HBase completamente gestito di Google Cloud. Per esaminare il file README e il codice sorgente, visita la Repository GitHub.

Casi d'uso

  • Migrazione online a Bigtable: puoi utilizzare libreria di replica Bigtable HBase, insieme a migrazione offline dei dati HBase esistenti, per eseguire la migrazione da HBase a Bigtable con tempi di inattività quasi azzerati.
  • 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 da HBase in più località a una singola istanza Bigtable che gestisce automaticamente la replica tra i cluster.
  • Estensione della tua presenza HBase: esegui la replica in un Istanza Bigtable che contiene cluster in località oltre la tua le posizioni HBase attuali.

Panoramica

La libreria di replica di Bigtable HBase estende la base Replica HBase completamente gestito di Google Cloud. I dati scritti in un cluster HBase vengono replicati in modo asincrono a un'istanza Bigtable nello stesso modo in cui HBase standard la replica 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 di replicare solo determinate famiglie di colonne o tabelle. In altre parole, la replica HBase è abilitata a livello di cluster, tabella o famiglia di colonne.

La replica da HBase a Bigtable in modo costante.

immagine

Esegui la migrazione a Bigtable

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

In linea generale, i passaggi per la migrazione online da HBase a Bigtable sono i seguenti. Consulta le README per ulteriori dettagli.

  1. Prima di iniziare, segui i passaggi di impostazione e configurazione.
  2. Abilita la replica nel cluster HBase.
  3. Aggiungi un endpoint di replica Bigtable come peer.
  4. Disattiva il peer Bigtable. Questo causa le scritture in HBase da quel punto in poi per eseguire il 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 riesecuzione 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 di Bigtable HBase, devi completa le attività in questa sezione.

Configura l'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.

Poi, aggiungi quanto segue al tuo file hbase-site.xml in tutto HBase in un cluster Kubernetes.

<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 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. Richieste dalla replica HBase vengono instradati al cluster più vicino in Bigtable e poi replicato negli altri cluster nell'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.

Impostare le proprietà di configurazione

Aggiungi quanto segue al tuo 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 e la connessione 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 recuperare la libreria di replica, esegui quanto segue 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 che che utilizzano.
  2. Fai clic sul numero di versione più recente, ad esempio 1.0.0.
  3. Identifica il file jar-with-dependencies (di solito nella parte superiore).
  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/.

Aggiungi 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 il comando seguente 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 valore 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 è supported.)

Passaggi successivi