Einrichten der Apache HBase-Clusterreplikation in virtuellen Azure-NetzwerkenSet up Apache HBase cluster replication in Azure virtual networks

Hier erfahren Sie, wie Sie die Apache HBase-Replikation innerhalb eines virtuellen Netzwerks oder zwischen zwei virtuellen Netzwerken in Azure einrichten.Learn how to set up Apache HBase replication within a virtual network, or between two virtual networks in Azure.

Clusterreplikation verwendet eine Source-Push-Methodologie.Cluster replication uses a source-push methodology. Ein HBase-Cluster kann Quelle oder Ziel sein oder beide Rollen gleichzeitig erfüllen.An HBase cluster can be a source or a destination, or it can fulfill both roles at once. Die Replikation ist asynchron.Replication is asynchronous. Das Ziel der Replikation ist die endgültige Konsistenz.The goal of replication is eventual consistency. Die Bearbeitung einer Spaltenfamilie in der Quelle bei aktivierter Replikation wird an alle Zielcluster weitergegeben.When the source receives an edit to a column family when replication is enabled, the edit is propagated to all destination clusters. Wenn Daten von einem Cluster auf einen anderen repliziert werden, werden der Quellcluster und alle Cluster, die bereits Daten genutzt haben, nachverfolgt, um Replikationsschleifen zu verhindern.When data is replicated from one cluster to another, the source cluster and all clusters that have already consumed the data are tracked, to prevent replication loops.

In diesem Artikel richten Sie eine Quell-/Zielreplikation ein.In this article, you set up a source-destination replication. Andere Clustertopologien finden Sie im Apache HBase-Referenzhandbuch.For other cluster topologies, see the Apache HBase reference guide.

Anwendungsfälle für die HBase-Replikation für ein einzelnes virtuelles Netzwerk sind:The following are HBase replication usage cases for a single virtual network:

  • Lastenausgleich.Load balancing. Sie können z.B. Scans oder MapReduce-Aufträge im Zielcluster ausführen und Daten im Quellcluster erfassen.For example, you can run scans or MapReduce jobs on the destination cluster, and ingest data on the source cluster.
  • Hinzufügen von Hochverfügbarkeit.Adding high availability.
  • Migrieren von Daten zwischen HBase-Clustern.Migrating data from one HBase cluster to another.
  • Aktualisieren eines Azure HDInsight-Clusters von einer Version auf eine andere.Upgrading an Azure HDInsight cluster from one version to another.

Anwendungsfälle für die HBase-Replikation für zwei virtuelle Netzwerks sind:The following are HBase replication usage cases for two virtual networks:

  • Einrichten der Notfallwiederherstellung.Setting up disaster recovery.
  • Lastenausgleich und Partitionierung der Anwendung.Load balancing and partitioning the application.
  • Hinzufügen von Hochverfügbarkeit.Adding high availability.

Sie können Cluster mit Skriptaktionen-Skripts aus GitHub replizieren.You can replicate clusters by using script action scripts from GitHub.

VoraussetzungenPrerequisites

Für diesen Artikel benötigen Sie ein Azure-Abonnement.Before you begin this article, you must have an Azure subscription. Siehe How to get Azure Free trial for testing Hadoop in HDInsight (So erhalten Sie eine kostenlose Azure-Testversion zum Testen von Hadoop in HDInsight).See Get an Azure free trial.

Einrichten der UmgebungenSet up the environments

Es gibt drei Konfigurationsoptionen:You have three configuration options:

  • Zwei Apache HBase-Cluster in einem virtuellen Azure-Netzwerk.Two Apache HBase clusters in one Azure virtual network.
  • Zwei Apache HBase-Cluster in zwei verschiedenen virtuellen Netzwerken in der gleichen Region.Two Apache HBase clusters in two different virtual networks in the same region.
  • Zwei Apache HBase-Cluster in zwei verschiedenen virtuellen Netzwerken in zwei verschiedenen Regionen (Georeplikation).Two Apache HBase clusters in two different virtual networks in two different regions (geo-replication).

In diesem Artikel wir das Szenario der Georeplikation behandelt.This article covers the geo-replication scenario.

Um Ihnen die Einrichtung der Umgebungen zu erleichtern, haben wir einige Azure Resource Manager-Vorlagen erstellt.To help you set up the environments, we have created some Azure Resource Manager templates. Wenn Sie die Umgebungen mit anderen Methoden einrichten möchten, finden Sie hier weitere Informationen:If you prefer to set up the environments by using other methods, see:

Einrichten von zwei virtuellen Netzwerken in zwei verschiedenen RegionenSet up two virtual networks in two different regions

Um eine Vorlage zu verwenden, die zwei virtuelle Netzwerke in zwei verschiedenen Regionen und die VPN-Verbindung zwischen den VNets zu erstellen, wählen Sie die folgende Schaltfläche In Azure bereitstellen aus.To use a template that creates two virtual networks in two different regions and the VPN connection between the VNets, select the following Deploy to Azure button. Die Vorlagendefinition befindet sich in einem öffentlichen Blob-Speicher.The template definition is stored in a public blob storage.

Deploy to Azure

Im Folgenden werden einige der hartcodierten Werte in der Vorlage aufgeführt:Some of the hard-coded values in the template:

VNet 1VNet 1

EigenschaftProperty WertValue
LocationLocation USA (Westen)West US
VNet-NameVNet name <ClusterNamePrevix>-vnet1<ClusterNamePrevix>-vnet1
AdressraumpräfixAddress space prefix 10.1.0.0/1610.1.0.0/16
SubnetznameSubnet name Subnetz 1subnet 1
SubnetzpräfixSubnet prefix 10.1.0.0/2410.1.0.0/24
Subnetzname (Gateway)Subnet (gateway) name GatewaySubnet (kann nicht geändert werden)GatewaySubnet (can't be changed)
Subnetzpräfix (Gateway)Subnet (gateway) prefix 10.1.255.0/2710.1.255.0/27
GatewaynameGateway name vnet1gwvnet1gw
GatewaytypGateway type VPNVpn
Gateway-VPN-TypGateway VPN type RouteBasedRouteBased
Gateway-SKUGateway SKU BasicBasic
Gateway-IPGateway IP vnet1gwipvnet1gwip

VNet 2VNet 2

EigenschaftProperty WertValue
LocationLocation East USEast US
VNet-NameVNet name <ClusterNamePrevix>-vnet2<ClusterNamePrevix>-vnet2
AdressraumpräfixAddress space prefix 10.2.0.0/1610.2.0.0/16
SubnetznameSubnet name Subnetz 1subnet 1
SubnetzpräfixSubnet prefix 10.2.0.0/2410.2.0.0/24
Subnetzname (Gateway)Subnet (gateway) name GatewaySubnet (kann nicht geändert werden)GatewaySubnet (can't be changed)
Subnetzpräfix (Gateway)Subnet (gateway) prefix 10.2.255.0/2710.2.255.0/27
GatewaynameGateway name vnet2gwvnet2gw
GatewaytypGateway type VPNVpn
Gateway-VPN-TypGateway VPN type RouteBasedRouteBased
Gateway-SKUGateway SKU BasicBasic
Gateway-IPGateway IP vnet1gwipvnet1gwip

Einrichten von DNSSetup DNS

Im letzten Abschnitt wird anhand der Vorlage ein virtueller Ubuntu-Computer in jedem der beiden virtuellen Netzwerke erstellt.In the last section, the template creates an Ubuntu virtual machine in each of the two virtual networks. In diesem Abschnitt installieren Sie Bind auf den beiden virtuellen DNS-Computern und konfigurieren dann die DNS-Weiterleitung auf den beiden virtuellen Computern.In this section, you install Bind on the two DNS virtual machines, and then configure the DNS forwarding on the two virtual machines.

Um Bind zu installieren, müssen Sie die öffentliche IP-Adresse der beiden virtuellen DNS-Computer finden.To install Bind, yon need to find the public IP address of the two DNS virtual machines.

  1. Öffnen Sie das Azure-Portal.Open the Azure portal.
  2. Öffnen Sie den virtuellen DNS-Computer, indem Sie Ressourcengruppen > [Ressourcengruppenname] > [vnet1DNS] wählen.Open the DNS virtual machine by selecting Resources groups > [resource group name] > [vnet1DNS]. Der Ressourcengruppenname ist derjenige, den Sie in der vorherigen Prozedur erstellt haben.The resource group name is the one you create in the last procedure. Die Standardnamen der DNS-VMs lauten vnet1DNS und vnet2DNS.The default DNS virtual machine names are vnet1DNS and vnet2NDS.
  3. Wählen Sie Eigenschaften aus, um die Eigenschaftenseite des virtuellen Netzwerks zu öffnen.Select Properties to open the properties page of the virtual network.
  4. Notieren Sie sich die öffentliche IP-Adresse, und überprüfen Sie außerdem die private IP-Adresse.Write down the Public IP address, and also verify the Private IP address. Die private IP-Adresse soll 10.1.0.4 für vnet1DNS und 10.2.0.4 für vnet2DNS sein.The private IP address shall be 10.1.0.4 for vnet1DNS and 10.2.0.4 for vnet2DNS.
  5. Ändern Sie die DNS-Server für beide virtuelle Netzwerke in die Standard-DNS-Server (von Azure bereitgestellt), um eingehenden und ausgehenden Zugriff auf Downloadpakete zum Installieren von Bind in den folgenden Schritten zuzulassen.Change the DNS Servers for both virtual networks to use Default (Azure-Provided) DNS servers to allow inbound and outbound access to download packages to install Bind in the following steps.

Gehen Sie zur Installation von Bind wie folgt vor:To install Bind, use the following procedure:

  1. Verwenden Sie SSH, um eine Verbindung mit der öffentlichen IP-Adresse des virtuellen DNS-Computers herzustellen.Use SSH to connect to the public IP address of the DNS virtual machine. Im folgenden Beispiel wird über die IP-Adresse 40.68.254.142 eine Verbindung mit dem virtuellen Computer hergestellt:The following example connects to a virtual machine at 40.68.254.142:

    ssh sshuser@40.68.254.142
    

    Ersetzen Sie sshuser durch das SSH-Benutzerkonto, das beim Erstellen des virtuellen DNS-Computers angegeben wurde.Replace sshuser with the SSH user account you specified when creating the DNS virtual machine.

    Hinweis

    Das Hilfsprogramm ssh kann auf verschiedene Weise erworben werden.There are a variety of ways to obtain the ssh utility. Unter Linux, Unix und macOS gehört es zum Lieferumfang des Betriebssystems.On Linux, Unix, and macOS, it is provided as part of the operating system. Wenn Sie Windows verwenden, erwägen Sie eine der folgenden Optionen:If you are using Windows, consider one of the following options:

  2. Verwenden Sie in der SSH-Sitzung die folgenden Befehle, um Bind zu installieren:To install Bind, use the following commands from the SSH session:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Konfigurieren Sie Bind, um Namensauflösungsanforderungen an Ihren lokalen DNS-Server weiterzuleiten.Configure Bind to forward name resolution requests to your on premises DNS server. Verwenden Sie hierfür als Inhalt der Datei /etc/bind/named.conf.options den folgenden Text:To do so, use the following text as the contents of the /etc/bind/named.conf.options file:

    acl goodclients {
        10.1.0.0/16; # Replace with the IP address range of the virtual network 1
        10.2.0.0/16; # Replace with the IP address range of the virtual network 2
        localhost;
        localhost;
    };
    
    options {
        directory "/var/cache/bind";
        recursion yes;
        allow-query { goodclients; };
    
        forwarders {
            168.63.129.16; #This is the Azure DNS server
        };
    
        dnssec-validation auto;
    
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
    };
    

    Wichtig

    Ersetzen Sie die Werte im Abschnitt goodclients durch den IP-Adressbereich der zwei virtuellen Netzwerke.Replace the values in the goodclients section with the IP address range of the two virtual networks. In diesem Abschnitt werden die Adressen definiert, von denen dieser DNS-Server Anforderungen akzeptiert.This section defines the addresses that this DNS server accepts requests from.

    Verwenden Sie zum Bearbeiten dieser Datei den folgenden Befehl:To edit this file, use the following command:

    sudo nano /etc/bind/named.conf.options
    

    Zum Speichern der Datei drücken Sie STRG+X, Y und dann die EINGABETASTE.To save the file, use Ctrl+X, Y, and then Enter.

  4. Verwenden Sie aus der SSH-Sitzung den folgenden Befehl:From the SSH session, use the following command:

    hostname -f
    

    Dieser Befehl gibt einen Wert zurück, der in etwa wie folgt aussieht:This command returns a value similar to the following text:

     vnet1DNS.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Der Text icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net ist das DNS-Suffix für dieses virtuelle Netzwerk.The icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net text is the DNS suffix for this virtual network. Speichern Sie diesen Wert, da er später wieder verwendet wird.Save this value, as it is used later.

    Zudem müssen Sie das DNS-Suffix von dem anderen DNS-Server ermitteln.You must also find out the DNS suffix from the other DNS server. Sie benötigen sie im nächsten Schritt.You need it in the next step.

  5. Um Bind zum Auflösen von DNS-Namen für Ressourcen innerhalb des virtuellen Netzwerks zu konfigurieren, verwenden Sie den folgenden Text als Inhalt der Datei /etc/bind/named.conf.local:To configure Bind to resolve DNS names for resources within the virtual network, use the following text as the contents of the /etc/bind/named.conf.local file:

    // Replace the following with the DNS suffix for your virtual network
    zone "v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net" {
            type forward;
            forwarders {10.2.0.4;}; # The Azure recursive resolver
    };
    

    Wichtig

    Sie müssen den Wert v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net durch das DNS-Suffix des anderen virtuellen Netzwerks ersetzen.You must replace the v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net with the DNS suffix of the other virtual network. Und die Weiterleitungs-IP-Adresse ist die private IP-Adresse des DNS-Servers im anderen virtuellen Netzwerk.And the forwarder IP is the private IP address of the DNS server in the other virtual network.

    Verwenden Sie zum Bearbeiten dieser Datei den folgenden Befehl:To edit this file, use the following command:

    sudo nano /etc/bind/named.conf.local
    

    Zum Speichern der Datei drücken Sie STRG+X, Y und dann die EINGABETASTE.To save the file, use Ctrl+X, Y, and then Enter.

  6. Verwenden Sie den folgenden Befehl, um Bind zu starten:To start Bind, use the following command:

    sudo service bind9 restart
    
  7. Um zu überprüfen, ob Bind die Namen der Ressourcen im anderen virtuellen Netzwerk auflösen kann, verwenden Sie die folgenden Befehle:To verify that bind can resolve the names of resources in the other virtual network, use the following commands:

    sudo apt install dnsutils
    nslookup vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net
    

    Wichtig

    Ersetzen Sie vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net mit dem vollqualifizierten Domänennamen (FQDN) des virtuellen DNS-Computers im anderen Netzwerk.Replace vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net with the fully qualified domain name (FQDN) of the DNS virtual machine in the other network.

    Ersetzen Sie 10.2.0.4 durch die interne IP-Adresse Ihres benutzerdefinierten DNS-Servers im anderen virtuellen Netzwerk.Replace 10.2.0.4 with the internal IP address of your custom DNS server in the other virtual network.

    Die Ausgabe ähnelt dem folgenden Text:The response appears similar to the following text:

    Server:         10.2.0.4
    Address:        10.2.0.4#53
    
    Non-authoritative answer:
    Name:   vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net
    Address: 10.2.0.4
    

    Bisher können Sie die IP-Adresse des anderen Netzwerks nicht ohne die angegebene DNS-Server-IP-Adresse abfragen.Until now, you cannot look up the IP address from the other network without specified DNS server IP address.

Konfigurieren des virtuellen Netzwerks zur Verwendung des benutzerdefinierten DNS-ServersConfigure the virtual network to use the custom DNS server

Führen Sie die folgenden Schritte aus, damit das virtuelle Netzwerk anstelle des rekursiven Azure-Resolvers den benutzerdefinierten DNS-Server verwendet:To configure the virtual network to use the custom DNS server instead of the Azure recursive resolver, use the following steps:

  1. Wählen Sie im Azure-Portal das virtuelle Netzwerk aus, und klicken Sie dann auf DNS-Server.In the Azure portal, select the virtual network, and then select DNS Servers.

  2. Wählen Sie Benutzerdefiniert aus, und geben Sie die interne IP-Adresse des benutzerdefinierten DNS-Servers ein.Select Custom, and enter the internal IP address of the custom DNS server. Klicken Sie abschließend auf Speichern.Finally, select Save.

  3. Öffnen Sie den virtuellen DNS-Servercomputer in vnet1, und klicken Sie auf Neustart.Open the DNS server virtual machine in vnet1, and click Restart. Sie müssen alle virtuellen Computer im virtuellen Netzwerk neu starten, damit die DNS-Konfiguration übernommen wird.You must restart all the virtual machines in the virtual network to make the DNS configuration to take effect.

  4. Wiederholen Sie die Schritte zur Konfiguration des benutzerdefinierten DNS-Servers für vnet2.Repeat steps configure the custom DNS server for vnet2.

Um die DNS-Konfiguration zu testen, können Sie eine Verbindung zu den beiden virtuellen DNS-Computern über SSH herstellen und den DNS-Server des anderen virtuellen Netzwerks über dessen Hostnamen pingen.To test the DNS configuration, you can connect to the two DNS virtual machines using SSH, and ping the DNS server of the other virtual network by using its host name. Wenn es nicht funktioniert, verwenden Sie den folgenden Befehl, um den DNS-Status zu überprüfen:If it doesn't work, use the following command to check DNS status:

sudo service bind9 status

Erstellen von Apache HBase-ClusternCreate Apache HBase clusters

Erstellen Sie in jedem der beiden virtuellen Netzwerke einen Apache HBase-Cluster mit folgender Konfiguration:Create an Apache HBase cluster in each of the two virtual networks with the following configuration:

  • Name der Ressourcengruppe: Verwenden Sie den gleichen Ressourcengruppennamen, wie beim Erstellen der virtuellen Netzwerke.Resource group name: use the same resource group name as you created the virtual networks.
  • Clustertyp: hbaseCluster type: HBase
  • Version: HBase 1.1.2 (HDI 3.6)Version: HBase 1.1.2 (HDI 3.6)
  • Standort: Verwenden Sie denselben Standort wie das virtuelle Netzwerk.Location: Use the same location as the virtual network. Standardmäßig ist vnet1 USA, Westen und vnet2 ist USA, Osten.By default, vnet1 is West US, and vnet2 is East US.
  • Speicher: Erstellen Sie ein neues Speicherkonto für den Cluster.Storage: Create a new storage account for the cluster.
  • Virtuelles Netzwerk (über die erweiterten Einstellungen im Portal): Wählen Sie „vnet1“ aus, das Sie im letzten Vorgang erstellt haben.Virtual network (from Advanced settings on the portal): Select vnet1 you created in the last procedure.
  • Subnetz: Der in der Vorlage verwendete Standardname lautet subnet1.Subnet: The default name used in the template is subnet1.

Um sicherzustellen, dass die Umgebung korrekt konfiguriert ist, müssen Sie den FQDN des Hauptknotens zwischen den beiden Clustern pingen können.To ensure the environment is configured correctly, you must be able to ping the headnode's FQDN between the two clusters.

Laden von TestdatenLoad test data

Wenn Sie einen Cluster replizieren, müssen Sie die Tabellen angeben, die Sie replizieren möchten.When you replicate a cluster, you must specify the tables that you want to replicate. In diesem Abschnitt laden Sie einige Daten in den Quellcluster.In this section, you load some data into the source cluster. Im nächsten Abschnitt aktivieren Sie die Replikation zwischen den beiden Clustern.In the next section, you will enable replication between the two clusters.

Wenn Sie eine Tabelle namens Kontakte erstellen und einige Daten in die Tabelle einfügen möchten, befolgen Sie die Anweisungen unter Apache HBase-Tutorial: Erste Schritte mit Apache HBase in HDInsight.To create a Contacts table and insert some data in the table, follow the instructions at Apache HBase tutorial: Get started using Apache HBase in HDInsight.

Aktivieren der ReplikationEnable replication

Die folgenden Schritte zeigen, wie Sie das Skript mit Skriptaktionen aus dem Azure-Portal aufrufen.The following steps describe how to call the script action script from the Azure portal. Informationen zum Ausführen einer Skriptaktion mithilfe von Azure PowerShell und der klassischen Azure CLI finden Sie unter Anpassen von Linux-basierten HDInsight-Clustern mithilfe von Skriptaktionen.For information about running a script action by using Azure PowerShell and the Azure Classic CLI, see Customize HDInsight clusters by using script action.

So aktivieren Sie die HBase-Replikation über das Azure-PortalTo enable HBase replication from the Azure portal

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Öffnen Sie den HBase-Quellcluster.Open the source HBase cluster.

  3. Wählen Sie im Clustermenü Skriptaktionen.In the cluster menu, select Script Actions.

  4. Wählen Sie am oberen Rand der Seite Neue übermitteln aus.At the top of the page, select Submit New.

  5. Wählen Sie folgende Informationen aus, oder geben Sie sie ein:Select or enter the following information:

    1. Name: Geben Sie Replikation aktivieren ein.Name: Enter Enable replication.

    2. Bash-Skript-URL: Geben Sie https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh ein.Bash Script URL: Enter https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh.

    3. Hauptknoten: Stellen Sie sicher, dass diese Option aktiviert ist.Head: Ensure this is selected. Deaktivieren Sie die anderen Knotentypen.Clear the other node types.

    4. Parameter: Die folgenden Beispielparameter aktivieren die Replikation für alle vorhandenen Tabellen und kopieren dann alle Daten aus dem Quellcluster in den Zielcluster:Parameters: The following sample parameters enable replication for all existing tables, and then copy all data from the source cluster to the destination cluster:

      -m hn1 -s <source hbase cluster name> -d <destination hbase cluster name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -copydata
      

      Hinweis

      Verwenden Sie für den DNS-Namen des Quell- und des Zielclusters jeweils den Hostnamen anstelle des FQDN.Use hostname instead of FQDN for both the source and destination cluster DNS name.

  6. Klicken Sie auf Erstellen.Select Create. Die Ausführung des Skripts kann einige Zeit in Anspruch nehmen, insbesondere dann, wenn Sie das Argument -copydata verwenden.The script can take a while to run, especially when you use the -copydata argument.

Erforderliche Argumente:Required arguments:

NAMEName BESCHREIBUNGDescription
-s, --src-cluster-s, --src-cluster Gibt den DNS-Namen des HBase-Quellclusters an.Specifies the DNS name of the source HBase cluster. Beispiel: -s hbsrccluster, --src-cluster=hbsrcclusterFor example: -s hbsrccluster, --src-cluster=hbsrccluster
-d, --dst-cluster-d, --dst-cluster Gibt den DNS-Namen des HBase-Zielclusters (Replikats) an.Specifies the DNS name of the destination (replica) HBase cluster. Beispiel: -s dsthbcluster, --src-cluster=dsthbclusterFor example: -s dsthbcluster, --src-cluster=dsthbcluster
-sp, --src-ambari-password-sp, --src-ambari-password Gibt das Administratorkennwort für Ambari im HBase-Quellcluster an.Specifies the admin password for Ambari on the source HBase cluster.
-dp, --dst-ambari-password-dp, --dst-ambari-password Gibt das Administratorkennwort für Ambari im HBase-Zielcluster an.Specifies the admin password for Ambari on the destination HBase cluster.

Optionale Argumente:Optional arguments:

NAMEName BESCHREIBUNGDescription
-su, --src-ambari-user-su, --src-ambari-user Gibt den Administratorbenutzernamen für Ambari im HBase-Quellcluster an.Specifies the admin user name for Ambari on the source HBase cluster. Der Standardwert lautet admin.The default value is admin.
-du, --dst-ambari-user-du, --dst-ambari-user Gibt den Administratorbenutzernamen für Ambari im HBase-Zielcluster an.Specifies the admin user name for Ambari on the destination HBase cluster. Der Standardwert lautet admin.The default value is admin.
-t, --table-list-t, --table-list Gibt die zu replizierenden Tabellen an.Specifies the tables to be replicated. Beispiel: --table-list="table1;table2;table3".For example: --table-list="table1;table2;table3". Wenn Sie keine Tabellen angeben, werden alle vorhandenen HBase-Tabellen repliziert.If you don't specify tables, all existing HBase tables are replicated.
-m, --machine-m, --machine Gibt den Hauptknoten an, auf dem die Skriptaktion ausgeführt werden soll.Specifies the head node where the script action runs. Der Wert lautet entweder hn0 oder hn1 und ist abhängig davon, welcher Knoten der aktive Hauptknoten ist.The value is either hn0 or hn1 and should be chosen based on which is the active head node. Verwenden Sie diese Option, wenn Sie das $0-Skript als Skriptaktion im HDInsight-Portal oder in Azure PowerShell ausführen.Use this option when you're running the $0 script as a script action from the HDInsight portal or Azure PowerShell.
-cp, -copydata-cp, -copydata Aktiviert die Migration vorhandener Daten in den Tabellen, in denen die Replikation aktiviert ist.Enables the migration of existing data on the tables where replication is enabled.
-rpm, -replicate-phoenix-meta-rpm, -replicate-phoenix-meta Aktiviert die Replikation in Phoenix-Systemtabellen.Enables replication on Phoenix system tables.

Verwenden Sie diese Option mit Vorsicht.Use this option with caution. Es wird empfohlen, die Phoenix-Tabellen in Replikatclustern neu zu erstellen, bevor Sie dieses Skript verwenden.We recommend that you re-create Phoenix tables on replica clusters before you use this script.
-h, --help-h, --help Zeigt Informationen zur Nutzung an.Displays usage information.

Der Abschnitt print_usage() des Skripts bietet eine detaillierte Erläuterung der Parameter.The print_usage() section of the script has a detailed explanation of parameters.

Nachdem die Skriptaktion erfolgreich bereitgestellt wurde, können Sie über SSH eine Verbindung mit dem HBase-Zielcluster herstellen und dann überprüfen, ob die Daten repliziert wurden.After the script action is successfully deployed, you can use SSH to connect to the destination HBase cluster, and then verify that the data has been replicated.

ReplikationsszenarienReplication scenarios

Die folgende Liste zeigt einige allgemeine Anwendungsfälle und die zugehörigen Parametereinstellungen:The following list shows you some general usage cases and their parameter settings:

  • Aktivieren der Replikation in allen Tabellen zwischen den beiden Clustern.Enable replication on all tables between the two clusters. Dieses Szenario erfordert kein Kopieren oder Migrieren der in den Tabellen vorhandenen Daten und verwendet keine Phoenix-Tabellen.This scenario does not require copying or migrating existing data in the tables, and it does not use Phoenix tables. Verwenden Sie die folgenden Parameter:Use the following parameters:

      -m hn1 -s <source hbase cluster name> -d <destination hbase cluster name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password>  
    
  • Aktivieren der Replikation in bestimmten Tabellen.Enable replication on specific tables. Verwenden Sie die folgenden Parameter, um die Replikation in „table1“, „table2“ und „table3“ zu aktivieren:To enable replication on table1, table2, and table3, use the following parameters:

      -m hn1 -s <source hbase cluster name> -d <destination hbase cluster name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -t "table1;table2;table3"
    
  • Aktivieren der Replikation in bestimmten Tabellen und Kopieren der vorhandenen Daten.Enable replication on specific tables, and copy the existing data. Verwenden Sie die folgenden Parameter, um die Replikation in „table1“, „table2“ und „table3“ zu aktivieren:To enable replication on table1, table2, and table3, use the following parameters:

      -m hn1 -s <source hbase cluster name> -d <destination hbase cluster name> -sp <source cluster Ambari password> -dp <destination cluster Ambari password> -t "table1;table2;table3" -copydata
    
  • Aktivieren der Replikation in allen Tabellen und Replikation der Phoenix-Metadaten von der Quelle zum Ziel.Enable replication on all tables, and replicate Phoenix metadata from source to destination. Die Replikation der Phoenix-Metadaten ist nicht perfekt.Phoenix metadata replication is not perfect. Verwenden Sie sie mit Vorsicht.Use it with caution. Verwenden Sie die folgenden Parameter:Use the following parameters:

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

Kopieren und Migrieren von DatenCopy and migrate data

Es gibt zwei separate Skripte mit Skriptaktionen für das Kopieren oder Migrieren von Daten, nachdem die Replikation aktiviert wurde:There are two separate script action scripts available for copying or migrating data after replication is enabled:

Sie können das gleiche Verfahren wie unter Aktivieren der Replikation befolgen, um die Skriptaktion aufzurufen.You can follow the same procedure that's described in Enable replication to call the script action. Verwenden Sie die folgenden Parameter:Use the following parameters:

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

Der Abschnitt print_usage() des Skripts bietet eine detaillierte Erläuterung der Parameter.The print_usage() section of the script has a detailed description of parameters.

SzenarienScenarios

  • Kopieren bestimmter Tabellen („test1“, „test2“ und „test3“) für alle bis jetzt (aktueller Zeitstempel) bearbeiteten Zeilen:Copy specific tables (test1, test2, and test3) for all rows edited until now (current time stamp):

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

    Oder:Or:

      -m hn1 -t "test1::;test2::;test3::" --replication-peer="zk5-hbrpl2;zk1-hbrpl2;zk5-hbrpl2:2181:/hbase-unsecure" -everythingTillNow
    
  • Kopieren bestimmter Tabellen innerhalb eines angegebenen Zeitraums:Copy specific tables with a specified time range:

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

Deaktivieren der ReplikationDisable replication

Um die Replikation zu deaktivieren, verwenden Sie ein weiteres Skript mit einer Skriptaction, das Sie auf GitHub finden.To disable replication, use another script action script from GitHub. Sie können das gleiche Verfahren wie unter Aktivieren der Replikation befolgen, um die Skriptaktion aufzurufen.You can follow the same procedure that's described in Enable replication to call the script action. Verwenden Sie die folgenden Parameter:Use the following parameters:

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

Der Abschnitt print_usage() des Skripts bietet eine detaillierte Erläuterung der Parameter.The print_usage() section of the script has a detailed explanation of parameters.

SzenarienScenarios

  • Deaktivieren der Replikation in allen Tabellen:Disable replication on all tables:

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

    oderor

      --src-cluster=<source hbase cluster name> --dst-cluster=<destination hbase cluster name> --src-ambari-user=<source cluster Ambari user name> --src-ambari-password=<source cluster Ambari password>
    
  • Deaktivieren der Replikation in angegebenen Tabellen („table1“, „table2“ und „table3“) :Disable replication on specified tables (table1, table2, and table3):

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

Nächste SchritteNext steps

In diesem Artikel haben Sie erfahren, wie Sie die Apache HBase-Replikation innerhalb eines virtuellen Netzwerks oder zwischen zwei virtuellen Netzwerken einrichten.In this article, you learned how to set up Apache HBase replication within a virtual network, or between two virtual networks. Weitere Informationen zu HDInsight und Apache HBase finden Sie in den folgenden Artikeln:To learn more about HDInsight and Apache HBase, see these articles: