Azure 仮想ネットワーク内で Apache HBase クラスターのレプリケーションを設定するSet up Apache HBase cluster replication in Azure virtual networks

Azure の 1 つの仮想ネットワーク内または 2 つの仮想ネットワーク間で Apache HBase レプリケーションを設定する方法について説明します。Learn how to set up Apache HBase replication within a virtual network, or between two virtual networks in Azure.

クラスターのレプリケーションでは、ソース プッシュの手法が使用されます。Cluster replication uses a source-push methodology. HBase クラスターは、ソースまたはターゲットになることも、両方のロールを同時に満たすこともできます。An HBase cluster can be a source or a destination, or it can fulfill both roles at once. レプリケーションは非同期です。Replication is asynchronous. レプリケーションの目的は、最終的な一貫性です。The goal of replication is eventual consistency. レプリケーションが有効になった列ファミリに対する編集をソースが受け取ると、その編集はすべてのターゲット クラスターに伝達されます。When the source receives an edit to a column family when replication is enabled, the edit is propagated to all destination clusters. クラスター間でデータがレプリケートされるときは、ソース クラスターとそのデータを既に消費しているすべてのクラスターが追跡されて、レプリケーション ループが防止されます。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 this article, you set up a source-destination replication. 他のクラスター トポロジについては、Apache HBase のリファレンス ガイドを参照してください。For other cluster topologies, see the Apache HBase reference guide.

次に示すのは、単一の仮想ネットワークでの HBase レプリケーションの使用例です。The following are HBase replication usage cases for a single virtual network:

  • 負荷分散。Load balancing. たとえば、ターゲット クラスターでスキャンや MapReduce ジョブを実行し、ソース クラスターでデータを取り込みます。For example, you can run scans or MapReduce jobs on the destination cluster, and ingest data on the source cluster.
  • 高可用性の追加。Adding high availability.
  • HBase クラスター間のデータの移行。Migrating data from one HBase cluster to another.
  • Azure HDInsight クラスターのバージョンのアップグレード。Upgrading an Azure HDInsight cluster from one version to another.

次に示すのは、2 つの仮想ネットワーク間での HBase レプリケーションの使用例です。The following are HBase replication usage cases for two virtual networks:

  • ディザスター リカバリーの設定。Setting up disaster recovery.
  • アプリケーションの負荷分散とパーティション分割。Load balancing and partitioning the application.
  • 高可用性の追加。Adding high availability.

クラスターは、GitHubスクリプト アクションのスクリプトを使用してレプリケートできます。You can replicate clusters by using script action scripts from GitHub.

前提条件Prerequisites

この記事を開始する前に、Azure サブスクリプションが必要です。Before you begin this article, you must have an Azure subscription. Azure 無料試用版の取得に関するページを参照してください。See Get an Azure free trial.

環境を設定するSet up the environments

3 つの構成オプションがあります。You have three configuration options:

  • 1 つの Azure 仮想ネットワーク内の 2 つの Apache HBase クラスター。Two Apache HBase clusters in one Azure virtual network.
  • 同じリージョンの 2 つの異なる仮想ネットワーク内の 2 つの Apache HBase クラスター。Two Apache HBase clusters in two different virtual networks in the same region.
  • 2 つの異なるリージョンの 2 つの異なる仮想ネットワーク内の 2 つの Apache HBase クラスター (geo レプリケーション)。Two Apache HBase clusters in two different virtual networks in two different regions (geo-replication).

この記事では、geo レプリケーション シナリオについて説明します。This article covers the geo-replication scenario.

環境を設定しやすくするために、複数の Azure Resource Manager テンプレートが用意されています。To help you set up the environments, we have created some Azure Resource Manager templates. 他の方法で環境を設定する場合は、次の記事を参照してください。If you prefer to set up the environments by using other methods, see:

2 つの異なるリージョンに 2 つの仮想ネットワークを設定するSet up two virtual networks in two different regions

2 つの異なるリージョンの 2 つの仮想ネットワークと、その VNet 間の VPN 接続を作成するテンプレートを使用するには、次の [Deploy to Azure] ボタンを選択します。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. テンプレートの定義は、パブリック BLOB ストレージに格納されています。The template definition is stored in a public blob storage.

Deploy to Azure button for new cluster

テンプレートには、一部の値がハードコーディングされています。それらの値を次に示します。Some of the hard-coded values in the template:

VNet 1VNet 1

プロパティProperty Value
LocationLocation 米国西部West US
VNet の名前VNet name <クラスター名のプレフィックス>-vnet1<ClusterNamePrevix>-vnet1
アドレス空間プレフィックスAddress space prefix 10.1.0.0/1610.1.0.0/16
サブネット名Subnet name subnet 1subnet 1
サブネットのプレフィックスSubnet prefix 10.1.0.0/2410.1.0.0/24
サブネット (ゲートウェイ) 名Subnet (gateway) name GatewaySubnet (変更不可)GatewaySubnet (can't be changed)
サブネット (ゲートウェイ) プレフィックスSubnet (gateway) prefix 10.1.255.0/2710.1.255.0/27
ゲートウェイ名Gateway name vnet1gwvnet1gw
ゲートウェイの種類Gateway type VpnVpn
ゲートウェイ VPN の種類Gateway VPN type RouteBasedRouteBased
ゲートウェイ SKUGateway SKU BasicBasic
ゲートウェイの IPGateway IP vnet1gwipvnet1gwip

VNet 2VNet 2

プロパティProperty Value
LocationLocation East USEast US
VNet の名前VNet name <クラスター名のプレフィックス>-vnet2<ClusterNamePrevix>-vnet2
アドレス空間プレフィックスAddress space prefix 10.2.0.0/1610.2.0.0/16
サブネット名Subnet name subnet 1subnet 1
サブネットのプレフィックスSubnet prefix 10.2.0.0/2410.2.0.0/24
サブネット (ゲートウェイ) 名Subnet (gateway) name GatewaySubnet (変更不可)GatewaySubnet (can't be changed)
サブネット (ゲートウェイ) プレフィックスSubnet (gateway) prefix 10.2.255.0/2710.2.255.0/27
ゲートウェイ名Gateway name vnet2gwvnet2gw
ゲートウェイの種類Gateway type VpnVpn
ゲートウェイ VPN の種類Gateway VPN type RouteBasedRouteBased
ゲートウェイ SKUGateway SKU BasicBasic
ゲートウェイの IPGateway IP vnet1gwipvnet1gwip

DNS をセットアップするSetup DNS

最後のセクションで、テンプレートは、2 つの仮想ネットワークのそれぞれの中に Ubuntu 仮想マシンを作成します。In the last section, the template creates an Ubuntu virtual machine in each of the two virtual networks. このセクションでは、2 つの DNS 仮想マシンに Bind をインストールし、2 つの仮想マシンで DNS の転送を構成します。In this section, you install Bind on the two DNS virtual machines, and then configure the DNS forwarding on the two virtual machines.

Bind をインストールするには、2 つの DNS 仮想マシンのパブリック IP アドレスを見つける必要があります。To install Bind, yon need to find the public IP address of the two DNS virtual machines.

  1. Azure Portalを開きます。Open the Azure portal.
  2. [リソース グループ] > <リソース グループ名> [vnet1DNS] を選択して、DNS 仮想マシンを開きます。Open the DNS virtual machine by selecting Resources groups > [resource group name] > [vnet1DNS]. リソース グループ名は、最後の手順で作成する名前です。The resource group name is the one you create in the last procedure. 既定の DNS 仮想マシン名は、vnet1DNSvnet2NDS です。The default DNS virtual machine names are vnet1DNS and vnet2NDS.
  3. [プロパティ] を選択して、仮想ネットワークのプロパティ ページを開きます。Select Properties to open the properties page of the virtual network.
  4. [パブリック IP アドレス] を書き留めます。さらに、 [プライベート IP アドレス] を確認します。Write down the Public IP address, and also verify the Private IP address. プライベート IP アドレスは、vnet1DNS では 10.1.0.4、vnet2DNS では 10.2.0.4 です。The private IP address shall be 10.1.0.4 for vnet1DNS and 10.2.0.4 for vnet2DNS.
  5. 既定の (Azure で提供されている) DNS サーバーを使用して受信および送信アクセスでパッケージをダウンロードして Bind をインストールできるように、次の手順で両方の仮想ネットワークの DNS サーバーを変更します。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.

Bind をインストールするには、次の手順に従います。To install Bind, use the following procedure:

  1. SSH を使用して、DNS 仮想マシンの パブリック IP アドレス にアクセスします。Use SSH to connect to the public IP address of the DNS virtual machine. 次の例では、40.68.254.142 の仮想マシンに接続します。The following example connects to a virtual machine at 40.68.254.142:

    ssh sshuser@40.68.254.142
    

    sshuser を、DNS 仮想マシンの作成時に指定した SSH ユーザー アカウントに置き換えます。Replace sshuser with the SSH user account you specified when creating the DNS virtual machine.

    注意

    ssh ユーティリティは、さまざまな方法で取得できます。There are a variety of ways to obtain the ssh utility. Linux、Unix、および macOS では、オペレーティング システムの一部として提供されます。On Linux, Unix, and macOS, it is provided as part of the operating system. Windows を使用している場合は、次のオプションのいずれかを検討してください。If you are using Windows, consider one of the following options:

  2. Bind をインストールするには、SSH セッションから次のコマンドを使用します。To install Bind, use the following commands from the SSH session:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. オンプレミスの DNS サーバーに名前解決要求を転送するように Bind を構成します。Configure Bind to forward name resolution requests to your on premises DNS server. そのために、/etc/bind/named.conf.options ファイルの内容として次のテキストを使用します。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; };
    };
    

    重要

    goodclients セクションの値を、2 つの仮想ネットワークの IP アドレス範囲に置き換えます。Replace the values in the goodclients section with the IP address range of the two virtual networks. このセクションは、この DNS サーバーが受け入れる要求の転送元アドレスを定義します。This section defines the addresses that this DNS server accepts requests from.

    このファイルを編集するには、次のコマンドを使用します。To edit this file, use the following command:

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

    ファイルを保存するには、Ctrl + X キー、Y キー、Enter キーの順に押します。To save the file, use Ctrl+X, Y, and then Enter.

  4. SSH セッションでは、次のコマンドを使用します。From the SSH session, use the following command:

    hostname -f
    

    このコマンドにより、次のテキストのような値が返されます。This command returns a value similar to the following text:

     vnet1DNS.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net テキストは、この仮想ネットワークの DNS サフィックス です。The icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net text is the DNS suffix for this virtual network. この値を保存します。これは後で使用します。Save this value, as it is used later.

    他の DNS サーバーの DNS サフィックスも見つけておく必要があります。You must also find out the DNS suffix from the other DNS server. 次の手順で必要になります。You need it in the next step.

  5. 仮想ネットワークでリソースの DNS 名を解決するように Bind を構成するには、/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
    };
    

    重要

    v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net を、別の仮想ネットワークの DNS サフィックスに置き換えます。You must replace the v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net with the DNS suffix of the other virtual network. フォワーダー IP は、他の仮想ネットワーク内の DNS サーバーのプライベート IP アドレスです。And the forwarder IP is the private IP address of the DNS server in the other virtual network.

    このファイルを編集するには、次のコマンドを使用します。To edit this file, use the following command:

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

    ファイルを保存するには、Ctrl + X キー、Y キー、Enter キーの順に押します。To save the file, use Ctrl+X, Y, and then Enter.

  6. Bind を起動するには、次のコマンドを使用します。To start Bind, use the following command:

    sudo service bind9 restart
    
  7. Bind が他の仮想ネットワーク内のリソース名を解決できることを確認するには、次のコマンドを使用します。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
    

    重要

    vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net を、他のネットワーク内の DNS 仮想マシンの完全修飾ドメイン名 (FQDN) に置き換えます。Replace vnet2dns.v5ant3az2hbe1edzthhvwwkcse.bx.internal.cloudapp.net with the fully qualified domain name (FQDN) of the DNS virtual machine in the other network.

    10.2.0.4 を、他の仮想ネットワーク内のカスタム DNS サーバーの 内部 IP アドレス に置き換えます。Replace 10.2.0.4 with the internal IP address of your custom DNS server in the other virtual network.

    次のテキストのような応答が表示されます。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
    

    ここまでは、DNS サーバーの IP アドレスを指定せずに他のネットワークからの IP アドレスを参照することはできません。Until now, you cannot look up the IP address from the other network without specified DNS server IP address.

カスタム DNS サーバーを使用するように仮想ネットワークを構成するConfigure the virtual network to use the custom DNS server

Azure 再帰リゾルバーではなく、カスタム DNS サーバーを使用するように仮想ネットワークを構成するには、次の手順に従います。To configure the virtual network to use the custom DNS server instead of the Azure recursive resolver, use the following steps:

  1. Azure Portal で、仮想ネットワークを選択し、 [DNS サーバー] を選択します。In the Azure portal, select the virtual network, and then select DNS Servers.

  2. [カスタム] を選択し、カスタム DNS サーバーの 内部 IP アドレス を入力します。Select Custom, and enter the internal IP address of the custom DNS server. 最後に、 [保存] を選択します。Finally, select Save.

  3. vnet1 の DNS サーバー仮想マシンを開き、 [再起動] をクリックします。Open the DNS server virtual machine in vnet1, and click Restart. DNS 構成が有効であることを確認するには、仮想ネットワーク内のすべての仮想マシンを再起動する必要があります。You must restart all the virtual machines in the virtual network to make the DNS configuration to take effect.

  4. 手順を繰り返して、vnet2 のカスタムの DNS サーバーを構成します。Repeat steps configure the custom DNS server for vnet2.

DNS 構成をテストするには、SSH を使用して 2 つの DNS 仮想マシンに接続し、他の仮想ネットワークの DNS サーバーをそのホスト名を使用して ping します。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. うまくいかない場合は、次のコマンドを使用して DNS の状態をチェックします。If it doesn't work, use the following command to check DNS status:

sudo service bind9 status

Apache HBase クラスターを作成するCreate Apache HBase clusters

2 つの仮想ネットワークのそれぞれに、次の構成の Apache HBase クラスターを作成します。Create an Apache HBase cluster in each of the two virtual networks with the following configuration:

  • リソース グループ名: 仮想ネットワークの作成時と同じリソース グループ名を使用します。Resource group name: use the same resource group name as you created the virtual networks.
  • クラスターの種類:hbaseCluster type: HBase
  • バージョン:HBase 1.1.2 (HDI 3.6)Version: HBase 1.1.2 (HDI 3.6)
  • [場所] :仮想ネットワークと同じ場所を使います。Location: Use the same location as the virtual network. 既定では、vnet1 は [米国西部] 、vnet2 は [米国東部] です。By default, vnet1 is West US, and vnet2 is East US.
  • ストレージ: クラスター用の新しいストレージ アカウントを作成します。Storage: Create a new storage account for the cluster.
  • 仮想ネットワーク(ポータルの [詳細設定]):最後の手順で作成した vnet1 を選択します。Virtual network (from Advanced settings on the portal): Select vnet1 you created in the last procedure.
  • サブネット:テンプレートで使われる既定の名前は subnet1 です。Subnet: The default name used in the template is subnet1.

環境が正しく構成されていることを確認するには、2 つのクラスター間でヘッド ノードの FQDN に ping できる必要があります。To ensure the environment is configured correctly, you must be able to ping the headnode's FQDN between the two clusters.

テスト データの読み込みLoad test data

クラスターをレプリケートする場合は、レプリケートするテーブルを指定する必要があります。When you replicate a cluster, you must specify the tables that you want to replicate. このセクションでは、ソース クラスターにデータを読み込みます。In this section, you load some data into the source cluster. 次のセクションで、2 つのクラスター間のレプリケーションを有効にします。In the next section, you will enable replication between the two clusters.

Contacts テーブルを作成し、そのテーブルにいくつかデータを挿入するには、Apache HBase のチュートリアル:HDInsight の Apache HBase の使用を開始する方法に関するページの指示に従います。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.

注意

カスタム名前空間からテーブルをレプリケートする場合は、宛先クラスターでも適切なカスタム名前空間が定義されていることを確認する必要があります。If you want to replicate tables from a custom namespace, you need to ensure that the appropriate custom namespaces are defined on the destination cluster as well.

レプリケーションを有効にするEnable replication

次の手順は、Azure Portal からスクリプト アクションのスクリプトを呼び出す方法を示しています。The following steps describe how to call the script action script from the Azure portal. Azure PowerShell と Azure クラシック CLI を使用したスクリプト アクションの実行については、スクリプト アクションを使用して HDInsight クラスターをカスタマイズする方法に関するページを参照してください。For information about running a script action by using Azure PowerShell and the Azure Classic CLI, see Customize HDInsight clusters by using script action.

Azure Portal から HBase レプリケーションを有効にするにはTo enable HBase replication from the Azure portal

  1. Azure portal にサインインするSign in to the Azure portal.

  2. ソース HBase クラスターを開きます。Open the source HBase cluster.

  3. クラスター メニューの [スクリプト アクション] を選択します。In the cluster menu, select Script Actions.

  4. ページの上部にある [新規で送信] を選択します。At the top of the page, select Submit New.

  5. 次の情報を選択するか入力します。Select or enter the following information:

    1. Name:「Enable replication」と入力します。Name: Enter Enable replication.

    2. バッシュ スクリプト URI: https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh を入力します。Bash Script URL: Enter https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh.

    3. ヘッド:これが選択されていることを確認します。Head: Ensure this is selected. 他のノード タイプをオフにします。Clear the other node types.

    4. パラメーター: 次のサンプル パラメーターは、すべての既存のテーブルに対するレプリケーションを有効にし、ソース クラスターからデスティネーション クラスターにすべてのデータをコピーします。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
      

      注意

      ソースと宛先の両方のクラスター DNS 名に FQDN ではなくホスト名を使用します。Use hostname instead of FQDN for both the source and destination cluster DNS name.

      このチュートリアルでは、hn1 をアクティブなヘッド ノードと見なしています。This walkthrough assumes hn1 as active headnode. クラスターを確認してアクティブなヘッド ノードを識別してください。Please check your cluster to identify the active head node.

  6. 作成 を選択します。Select Create. このスクリプトの実行には、少し時間がかかます (特に -copydata 引数を使用する場合)。The script can take a while to run, especially when you use the -copydata argument.

必須の引数:Required arguments:

NameName [説明]Description
-s, --src-cluster-s, --src-cluster ソース HBase クラスターの DNS 名を指定します。Specifies the DNS name of the source HBase cluster. 例: -s hbsrccluster, --src-cluster=hbsrcclusterFor example: -s hbsrccluster, --src-cluster=hbsrccluster
-d, --dst-cluster-d, --dst-cluster デスティネーション (レプリカ) HBase クラスターの DNS 名を指定します。Specifies the DNS name of the destination (replica) HBase cluster. 例: -s dsthbcluster, --src-cluster=dsthbclusterFor example: -s dsthbcluster, --src-cluster=dsthbcluster
-sp, --src-ambari-password-sp, --src-ambari-password ソース HBase クラスターでの Ambari の管理パスワードを指定します。Specifies the admin password for Ambari on the source HBase cluster.
-dp, --dst-ambari-password-dp, --dst-ambari-password デスティネーション HBase クラスターでの Ambari の管理パスワードを指定します。Specifies the admin password for Ambari on the destination HBase cluster.

省略可能な引数:Optional arguments:

NameName [説明]Description
-su, --src-ambari-user-su, --src-ambari-user ソース HBase クラスターでの Ambari の管理ユーザー名を指定します。Specifies the admin user name for Ambari on the source HBase cluster. 既定値は admin です。The default value is admin.
-du, --dst-ambari-user-du, --dst-ambari-user デスティネーション HBase クラスターでの Ambari の管理者ユーザー名を指定します。Specifies the admin user name for Ambari on the destination HBase cluster. 既定値は admin です。The default value is admin.
-t, --table-list-t, --table-list レプリケートされるテーブルを指定します。Specifies the tables to be replicated. 例: --table-list="table1;table2;table3"。For example: --table-list="table1;table2;table3". テーブルを指定しない場合は、すべての既存の HBase テーブルがレプリケートされます。If you don't specify tables, all existing HBase tables are replicated.
-m, --machine-m, --machine スクリプト アクションを実行するヘッド ノードを指定します。Specifies the head node where the script action runs. この値は、どちらがアクティブなヘッド ノードであるかに基づいて選択する必要があります。The value should be chosen based on which is the active head node. このオプションは、HDInsight ポータルまたは Azure PowerShell からスクリプト アクションとして $0 スクリプトを実行する場合に使用します。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 レプリケーションが有効になっているテーブルの既存のデータの移行を有効にします。Enables the migration of existing data on the tables where replication is enabled.
-rpm, -replicate-phoenix-meta-rpm, -replicate-phoenix-meta Phoenix システム テーブルのレプリケーションを有効にします。Enables replication on Phoenix system tables.

このオプションは慎重に使用してください。Use this option with caution. このスクリプトを使用する前に、レプリカ クラスターで Phoenix テーブルを再作成しておくことをお勧めします。We recommend that you re-create Phoenix tables on replica clusters before you use this script.
-h, --help-h, --help 使用方法に関する情報を表示します。Displays usage information.

スクリプトprint_usage() セクションに、パラメーターの詳細な説明が用意されています。The print_usage() section of the script has a detailed explanation of parameters.

スクリプト アクションが正常に実行された後、SSH を使用してデスティネーション HBase クラスターに接続して、データがレプリケートされたことを確認できます。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.

レプリケーション シナリオReplication scenarios

いくつかの一般的な使用例とそのパラメーターの設定を次に示します。The following list shows you some general usage cases and their parameter settings:

  • 2 つのクラスター間ですべてのテーブルのレプリケーションを有効にするEnable replication on all tables between the two clusters. このシナリオでは、テーブルの既存のデータのコピー/移行は不要であり、Phoenix テーブルは使用しません。This scenario does not require copying or migrating existing data in the tables, and it does not use Phoenix tables. 次のパラメーターを使用します。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>  
    
  • 特定のテーブルのレプリケーションを有効にするEnable replication on specific tables. table1、table2、および table3 のレプリケーションを有効にするには、次のパラメーターを使用します。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"
    
  • 特定のテーブルのレプリケーションを有効にし、既存のデータをコピーするEnable replication on specific tables, and copy the existing data. table1、table2、および table3 のレプリケーションを有効にするには、次のパラメーターを使用します。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
    
  • ソースからデスティネーションに Phoenix メタデータをレプリケートして、すべてのテーブルのレプリケーションを有効にするEnable replication on all tables, and replicate Phoenix metadata from source to destination. Phoenix メタデータのレプリケーションは完璧ではありません。Phoenix metadata replication is not perfect. 慎重に使用してください。Use it with caution. 次のパラメーターを使用します。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
    

データのコピーと移行Copy and migrate data

レプリケーションを有効にした後でデータをコピー/移行するスクリプト アクションのスクリプトは 2 つあります。There are two separate script action scripts available for copying or migrating data after replication is enabled:

レプリケーションを有効にする」と同じ手順でスクリプト アクションを呼び出すことができます。You can follow the same procedure that's described in Enable replication to call the script action. 次のパラメーターを使用します。Use the following parameters:

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

スクリプトprint_usage() セクションに、パラメーターの詳細な説明が用意されています。The print_usage() section of the script has a detailed description of parameters.

シナリオScenarios

  • 特定のテーブル (test1、test2、および test3) の現在のタイムスタンプまでに編集されたすべての行をコピーする: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
    

    または:Or:

      -m hn1 -t "test1::;test2::;test3::" --replication-peer="zk5-hbrpl2;zk1-hbrpl2;zk5-hbrpl2:2181:/hbase-unsecure" -everythingTillNow
    
  • 特定のテーブルの指定した時間範囲のデータをコピーする: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"
    

レプリケーションを無効にするDisable replication

レプリケーションを無効にするには、GitHub にある別のスクリプト アクションのスクリプトを使用します。To disable replication, use another script action script from GitHub. レプリケーションを有効にする」と同じ手順でスクリプト アクションを呼び出すことができます。You can follow the same procedure that's described in Enable replication to call the script action. 次のパラメーターを使用します。Use the following parameters:

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

スクリプトprint_usage() セクションに、パラメーターの詳細な説明が用意されています。The print_usage() section of the script has a detailed explanation of parameters.

シナリオScenarios

  • すべてのテーブルのレプリケーションを無効にする:Disable replication on all tables:

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

    oror

      --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>
    
  • 指定したテーブル (table1、table2、および 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"
    

注意

宛先クラスターを削除しようとしている場合は、ソース クラスターのピアの一覧から削除するようにしてください。If you intend to delete the destination cluster, make sure you remove it from the peer list of the source cluster. これを行うには、ソース クラスターの hbase シェルでコマンド remove_peer '1' を実行します。This can be done by running the command remove_peer '1' at the hbase shell on the source cluster. これが失敗する場合は、ソース クラスターが正しく機能していない可能性があります。Failing this the source cluster may not function properly.

次のステップNext steps

この記事では、1 つの仮想ネットワーク内または 2 つの仮想ネットワーク間で Apache HBase レプリケーションを設定する方法を説明しました。In this article, you learned how to set up Apache HBase replication within a virtual network, or between two virtual networks. HDInsight と Apache HBase の詳細については、以下の記事を参照してください。To learn more about HDInsight and Apache HBase, see these articles: