Configurare la replica di cluster HBase nelle reti virtuali

Informazioni su come configurare la replica di HBase in una rete virtuale (VNet) o tra due reti virtuali.

La replica di cluster usa una metodologia con push dell'origine. Un cluster HBase può essere un'origine o una destinazione o può soddisfare entrambi i ruoli in una sola volta. La replica è asincrona e l'obiettivo della replica è la coerenza finale. Quando l'origine riceve una modifica a una famiglia di colonne con la replica abilitata, tale modifica viene propagata a tutti i cluster di destinazione. Quando i dati vengono replicati da un cluster a un altro, viene tenuta traccia del cluster di origine e di tutti i cluster che hanno già usato i dati per evitare i cicli di replica.

In questa esercitazione si configurerà una replica origine-destinazione. Per altre topologie di cluster, vedere la guida di riferimento relativa a Apache HBase.

Casi di utilizzo della replica di HBase per una singola rete virtuale:

  • Bilanciamento del carico, ad esempio esecuzione di analisi o processi MapReduce nel cluster di destinazione e inserimento di dati nel cluster di origine
  • Disponibilità elevata
  • Migrazione di dati da un cluster HBase a un altro
  • Aggiornamento di un cluster Azure HDInsight da una versione a un'altra

Casi di utilizzo della replica di HBase per due reti virtuali:

  • Ripristino di emergenza
  • Bilanciamento del carico e partizionamento dell'applicazione
  • Disponibilità elevata

È possibile replicare i cluster tramite gli script Azione script disponibili in GitHub.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario disporre di un abbonamento ad Azure. Vedere Ottenere una versione di valutazione gratuita di Azure.

Configurare gli ambienti

Sono disponibili tre opzioni di configurazione:

  • Due cluster HBase in una rete virtuale di Azure
  • Due cluster HBase in due reti virtuali differenti nella stessa area
  • Due cluster HBase in due reti virtuali differenti in due aree differenti (replica geografica)

Per semplificare la configurazione degli ambienti, sono disponibili alcuni modelli di Azure Resource Manager. Se si preferisce configurare gli ambienti con altri metodi, vedere:

Configurare una rete virtuale

Fare clic sull'immagine seguente per creare due cluster HBase nella stessa rete virtuale. Il modello è archiviato tra i modelli di avvio rapido di Azure.

Deploy to Azure

Configurare due reti virtuali nella stessa area

Fare clic sull'immagine seguente per creare due reti virtuali con peering reti virtuali e due cluster HBase nella stessa area. Il modello è archiviato tra i modelli di avvio rapido di Azure.

Deploy to Azure

Questo scenario richiede il Peering reti virtuali. Il modello abilita il peering reti virtuali.

La replica di HBase usa gli indirizzi IP delle macchine virtuali ZooKeeper. È necessario configurare indirizzi IP statici per i nodi ZooKeeper HBase di destinazione.

Per configurare indirizzi IP statici

  1. Accedere al portale di Azure.
  2. Scegliere Gruppi di risorse dal menu a sinistra.
  3. Fare clic sul gruppo di risorse che contiene il cluster HBase di destinazione. Si tratta del gruppo di risorse specificato quando si è usato il modello di Resource Manager per creare l'ambiente. È possibile usare il filtro per restringere l'elenco. Viene visualizzato un elenco di risorse che contiene le due reti virtuali.
  4. Fare clic sulla rete virtuale che contiene il cluster HBase di destinazione. Ad esempio, fare clic su xxxx-vnet2. Vengono visualizzati tre dispositivi i cui nomi iniziano con nic-zookeepermode -. Questi dispositivi sono le tre macchine virtuali ZooKeeper.
  5. Fare clic su una delle macchine virtuali ZooKeeper.
  6. Fare clic su Configurazioni IP.
  7. Nell'elenco fare clic su ipConfig1.
  8. Fare clic su Staticoe annotare l'indirizzo IP effettivo. L'indirizzo IP sarà richiesto quando si esegue l'azione script per abilitare la replica.

    Replica di HBase in HDInsight - Indirizzo IP statico di ZooKeeper

  9. Ripetere il passaggio 6 per impostare l'indirizzo IP statico per gli altri due nodi ZooKeeper.

Per lo scenario tra più reti virtuali, è necessario usare lo switch -ip quando si esegue la chiamata all'azione di script hdi_enable_replication.sh.

Configurare due reti virtuali in due aree differenti

Fare clic sull'immagine seguente per creare due reti virtuali in due aree differenti. Il modello è disponibile in un contenitore BLOB di Azure pubblico.

Deploy to Azure

Creare un gateway VPN tra le due reti virtuali. Per istruzioni, vedere Creare una rete virtuale con una connessione da sito a sito.

La replica di HBase usa gli indirizzi IP delle macchine virtuali ZooKeeper. È necessario configurare indirizzi IP statici per i nodi ZooKeeper HBase di destinazione. Per configurare l'indirizzo IP statico, vedere la sezione "Configurare due reti virtuali nella stessa area" in questo articolo.

Per lo scenario tra più reti virtuali, è necessario usare lo switch -ip quando si esegue la chiamata all'azione di script hdi_enable_replication.sh.

Dati del test di carico

Quando si esegue la replica di un cluster, è necessario specificare le tabelle da replicare. In questa sezione, alcuni dati verranno caricati nel cluster di origine. Nella sezione successiva viene abilitata la replica tra i due cluster.

Seguire le istruzioni in Esercitazione su HBase: Introduzione all'uso di Apache HBase con Hadoop basato su Linux in HDInsight per creare una tabella Contatti inserire alcuni dati nella tabella.

Abilitare la replica

La procedura seguente illustra come richiamare l'azione script dal portale di Azure. Per l'esecuzione di un'azione script tramite l'interfaccia della riga di comando di Azure e Azure PowerShell, vedere Personalizzare cluster HDInsight basati su Linux tramite Azione script.

Per abilitare la replica di HBase dal portale di Azure

  1. Accedere al portale di Azure.
  2. Aprire il cluster HBase di origine.
  3. Fare clic su Azioni script dal menu del cluster.
  4. Fare clic su Inviare nuova nella parte superiore del pannello.
  5. Selezionare o immettere le seguenti informazioni:

    • Nome: immettere Abilitazione replica.
    • URL dello script Bash: immettere https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh.
    • Intestazione: Selezionata. Deselezionare gli altri tipi di nodo.
    • Parametri: i parametri di esempio seguenti abilitano la replica per tutte le tabelle esistenti e copiano tutti i dati dal cluster di origine al cluster di destinazione:

         -m hn1 -s <source cluster DNS name> -d <destination cluster DNS name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -copydata
      
  6. Fare clic su Crea. Lo script può richiedere del tempo, soprattutto quando si utilizza l'argomento copydata.

Argomenti obbligatori:

Nome Descrizione
-s, --src-cluster Specificare il nome DNS del cluster HBase di origine. Ad esempio: -s hbsrccluster, --src-cluster=hbsrccluster
-d, - dst-cluster Specificare il nome DNS del cluster HBase di destinazione (replica). Ad esempio: -s dsthbcluster, --src-cluster=dsthbcluster
-sp, --src-ambari-password Specificare la password amministratore per Ambari nel cluster HBase di origine.
-dp, --dst-ambari-password Specificare la password amministratore per Ambari nel cluster HBase di destinazione.

Argomenti facoltativi:

Nome Descrizione
-su, --src-ambari-user Specificare il nome utente amministratore per Ambari nel cluster HBase di origine. Il valore predefinito è admin.
-du, --dst-ambari-user Specificare il nome utente amministratore per Ambari nel cluster HBase di destinazione. Il valore predefinito è admin.
-t, --table-list Specificare le tabelle da replicare. Ad esempio: --table-list="table1;table2;table3". Se non si specificano tabelle, vengono replicate tutte le tabelle HBase esistenti.
-m, --machine Specificare il nodo head in cui verrà eseguita l'azione script. Il valore è hn1 o hn0. Poiché hn0 è usato con maggiore frequenza, è consigliabile usare hn1. Usare questa opzione quando si esegue lo script $0 come azione script dal portale di HDInsight o da Azure PowerShell.
-ip Questo argomento è obbligatorio quando si vuole abilitare la replica tra due reti virtuali. L'argomento funge da opzione per usare gli indirizzi IP statici dei nodi di ZooKeeper dai cluster di replica anziché nomi di dominio completi. Gli indirizzi IP statici devono essere preconfigurati prima di abilitare la replica.
-cp, -copydata Abilita la migrazione dei dati esistenti nelle tabelle in cui è abilitata la replica.
-rpm, -replicate-phoenix-meta Abilita la replica sulle tabelle di sistema Phoenix.

Questa opzione deve essere usata con attenzione. È consigliabile ricreare le tabelle di Phoenix nei cluster di replica prima di usare questo script.
-h, --help Visualizza le informazioni sull'utilizzo.

La sezione print_usage() dello script contiene una spiegazione dettagliata dei parametri.

Dopo aver distribuito correttamente l'azione script, è possibile usare SSH per connettersi al cluster HBase di destinazione e verificare che i dati siano stati replicati.

Scenari di replica

L'elenco seguente illustra alcuni casi di utilizzo generale e le relative impostazioni dei parametri:

  • Abilitare la replica su tutte le tabelle tra i due cluster. Questo scenario non richiede la copia e la migrazione dei dati esistenti nelle tabelle e non usa le tabelle di Phoenix. È possibile usare i parametri seguenti:

      -m hn1 -s <source cluster DNS name> -d <destination cluster DNS name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password>  
    
  • Abilitare la replica su tabelle specifiche. Usare i parametri seguenti per abilitare la replica su table1, table2 e table3:

      -m hn1 -s <source cluster DNS name> -d <destination cluster DNS name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -t "table1;table2;table3"
    
  • Abilitare la replica su tabelle specifiche e copiare i dati esistenti. Usare i parametri seguenti per abilitare la replica su table1, table2 e table3:

      -m hn1 -s <source cluster DNS name> -d <destination cluster DNS name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -t "table1;table2;table3" -copydata
    
  • Abilitare la replica in tutte le tabelle con la replica dei metadati di Phoenix dall'origine alla destinazione. La replica dei metadati di Phoenix non è perfetta e deve essere usata con cautela.

      -m hn1 -s <source cluster DNS name> -d <destination cluster DNS name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -t "table1;table2;table3" -replicate-phoenix-meta
    

Copia e migrazione dei dati

Sono disponibili due script azione script distinti per la copia o la migrazione dei dati dopo aver abilitato la replica:

È possibile eseguire la stessa procedura adottata per abilitare la replica per richiamare l'azione script con i parametri seguenti:

-m hn1 -t <table1:start_timestamp:end_timestamp;table2:start_timestamp:end_timestamp;...> -p <replication_peer> [-everythingTillNow]

La sezione print_usage() dello script contiene una descrizione dettagliata dei parametri.

Scenari

  • Copiare tabelle specifiche (test1, test2 e test3) per tutte le righe modificate finora (timestamp corrente):

      -m hn1 -t "test1::;test2::;test3::" -p "zk5-hbrpl2;zk1-hbrpl2;zk5-hbrpl2:2181:/hbase-unsecure" -everythingTillNow
    

    oppure

      -m hn1 -t "test1::;test2::;test3::" --replication-peer="zk5-hbrpl2;zk1-hbrpl2;zk5-hbrpl2:2181:/hbase-unsecure" -everythingTillNow
    
  • Copiare tabelle specifiche con un intervallo di tempo specificato:

      -m hn1 -t "table1:0:452256397;table2:14141444:452256397" -p "zk5-hbrpl2;zk1-hbrpl2;zk5-hbrpl2:2181:/hbase-unsecure"
    

Disabilitare la replica

Per disabilitare la replica usare un altro script Azione script disponibile in GitHub. È possibile eseguire la stessa procedura adottata per abilitare la replica per richiamare l'azione script con i parametri seguenti:

-m hn1 -s <source cluster DNS name> -sp <source cluster Ambari Password> <-all|-t "table1;table2;...">  

La sezione print_usage() dello script contiene una spiegazione dettagliata dei parametri.

Scenari

  • Disabilitare la replica in tutte le tabelle:

      -m hn1 -s <source cluster DNS name> -sp Mypassword\!789 -all
    

    oppure

      --src-cluster=<source cluster DNS name> --dst-cluster=<destination cluster DNS name> --src-ambari-user=<source cluster Ambari username> --src-ambari-password=<source cluster Ambari password>
    
  • Disabilitare la replica in tabelle specifiche (table1, table2 e table3):

      -m hn1 -s <source cluster DNS name> -sp <source cluster Ambari password> -t "table1;table2;table3"
    

Passaggi successivi

In questa esercitazione si è appreso come configurare la replica di HBase in due data center. Per altre informazioni su HDInsight e HBase, vedere: