Configurare la replica di cluster HBase nelle reti virtuali di Azure

Informazioni su come configurare la replica HBase in una rete virtuale o tra due reti virtuali in Azure.

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. 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 in 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 cicli di replica.

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

Di seguito sono illustrati i casi d'uso della replica HBase per una singola rete virtuale:

  • Bilanciamento del carico. È ad esempio possibile eseguire analisi o processi MapReduce nel cluster di destinazione e inserire i dati nel cluster di origine.
  • Aggiunta della disponibilità elevata.
  • Migrazione dei dati da un cluster HBase a un altro.
  • Aggiornamento di un cluster Azure HDInsight da una versione a un'altra.

Di seguito sono illustrati i casi d'uso della replica HBase per due reti virtuali:

  • Configurazione del ripristino di emergenza.
  • Bilanciamento del carico e partizionamento dell'applicazione.
  • Aggiunta della disponibilità elevata.

È possibile replicare i cluster tramite gli script di azione script di GitHub.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario disporre di un abbonamento ad Azure. Vedere Get an Azure free trial (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 diverse nella stessa area.
  • Due cluster HBase in due reti virtuali diverse in due aree diverse (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

Per creare due cluster HBase nella stessa rete virtuale, selezionare l'immagine seguente. Il modello è archiviato tra i modelli di avvio rapido di Azure.

Deploy to Azure

Configurare due reti virtuali nella stessa area

Per creare due reti virtuali con peering reti virtuali e due cluster HBase nella stessa area, selezionare l'immagine seguente. Il modello è archiviato tra i modelli di avvio rapido di Azure.

Deploy to Azure

Questo scenario richiede il peering reti virtuali. Questo modello consente 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. Nel menu di sinistra selezionare Gruppi di risorse.
  3. Selezionare il 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 in cui sono contenute le due reti virtuali.
  4. Selezionare la rete virtuale che contiene il cluster HBase di destinazione. Selezionare, ad esempio, xxxx-vnet2. Vengono visualizzati tre dispositivi i cui nomi iniziano con nic-zookeepermode-. Questi dispositivi sono le tre macchine virtuali ZooKeeper.
  5. Selezionare una delle macchine virtuali ZooKeeper.
  6. Selezionare Configurazioni IP.
  7. Nell'elenco selezionare ipConfig1.
  8. Selezionare Statico e copiare o annotare l'indirizzo IP effettivo. L'indirizzo IP sarà richiesto quando si esegue l'azione script per abilitare la replica.

    Indirizzo IP statico di ZooKeeper per la replica HBase in HDInsight

  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 l'opzione -ip quando si chiama l'azione script hdi_enable_replication.sh.

Configurare due reti virtuali in due aree diverse

Per creare due reti virtuali in due aree diverse, selezionare l'immagine seguente. Il modello è archiviato in un contenitore BLOB di Azure globale.

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 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 l'opzione -ip quando si chiama l'azione 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.

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

Abilitare la replica

La procedura seguente illustra come chiamare lo script di azione script dal portale di Azure. Per informazioni su come eseguire un'azione script tramite Azure PowerShell e lo strumento da riga di comando di Azure (Interfaccia della riga di comando di Azure), 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. Dal menu del cluster scegliere Azioni script.
  4. Nella parte superiore della pagina selezionare Invia nuova.
  5. Selezionare o immettere le seguenti informazioni:

    1. Nome: immettere Abilitazione replica.
    2. URL dello script Bash: immettere https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh.
    3. Head: assicurarsi che questa opzione sia selezionata. Deselezionare gli altri tipi di nodo.
    4. Parametri: i parametri di esempio seguenti abilitano la replica per tutte le tabelle esistenti e quindi 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
      

      Nota

      Usare il nome host invece di FQDN per il nome DNS del cluster di origine e di destinazione.

  6. Selezionare Crea. L'esecuzione dello script può richiedere tempo, in particolare se si usa l'argomento -copydata.

Argomenti obbligatori:

Nome Descrizione
-s, --src-cluster Specifica il nome DNS del cluster HBase di origine. Ad esempio: -s hbsrccluster, --src-cluster=hbsrccluster
-d, - dst-cluster Specifica il nome DNS del cluster HBase di destinazione (replica). Ad esempio: -s dsthbcluster, --src-cluster=dsthbcluster
-sp, --src-ambari-password Specifica 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 Specifica il nome utente amministratore per Ambari nel cluster HBase di origine. Il valore predefinito è admin.
-du, --dst-ambari-user Specifica il nome utente amministratore per Ambari nel cluster HBase di destinazione. Il valore predefinito è admin.
-t, --table-list Specifica 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 Specifica il nodo head in cui viene eseguita l'azione script. Il valore è hn1 o hn0. Poiché il nodo head hn0 è in genere più occupato, si consiglia di usare hn1. Usare questa opzione quando si esegue lo script $0 come azione script dal portale di HDInsight o da Azure PowerShell.
-ip Obbligatorio quando si abilita la replica tra due reti virtuali. L'argomento funge da opzione per usare gli indirizzi IP statici dei nodi ZooKeeper dai cluster di replica invece che dai nomi FQDN. È necessario preconfigurare gli indirizzi IP statici 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 nelle 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 o la migrazione dei dati esistenti nelle tabelle e non usa tabelle 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. Per abilitare la replica in table1, table2 e table3, 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> -t "table1;table2;table3"
    
  • Abilitare la replica in tabelle specifiche e copiare i dati esistenti. Per abilitare la replica in table1, table2 e table3, 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> -t "table1;table2;table3" -copydata
    
  • Abilitare la replica in tutte le tabelle e replicare i metadati di Phoenix dall'origine alla destinazione. La replica dei metadati di Phoenix non è perfetta. Usarla con cautela. È 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> -t "table1;table2;table3" -replicate-phoenix-meta
    

Copia e migrazione dei dati

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

È possibile eseguire la stessa procedura descritta in Abilitare la replica per chiamare l'azione script. È possibile usare 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
    

    In alternativa:

      -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 di azione script disponibile in GitHub. È possibile eseguire la stessa procedura descritta in Abilitare la replica per chiamare l'azione script. È possibile usare 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 user name> --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 HBase in una rete virtuale o tra due reti virtuali. Per altre informazioni su HDInsight e HBase, vedere questi articoli: