

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# EMR WAL 跨叢集複寫
<a name="emr-hbase-wal-cross-cluster"></a>

從 EMR 7.5 開始，EMR WAL 支援預先寫入日誌的 HBase 跨叢集複寫。本主題說明如何啟用 功能，並檢查其是否正常運作。如需叢集複寫的詳細資訊，請參閱 Apache HBase 文件中的[叢集複寫](https://hbase.apache.org/book.html#_cluster_replication)。

**注意**  
預先寫入日誌會產生額外的讀取成本，因為複寫程序會從本機 EMR WAL 讀取資料。如需成本的詳細資訊，請參閱[關於 Amazon EMR 版本](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-wal-metrics.html)。

## 跨叢集複寫設定
<a name="emr-hbase-wal-cross-cluster-setup"></a>

為了擁有相同的使用者體驗，在 EMR WAL 上啟用複寫功能與原生 HBase 預先寫入日誌相同。以下程序顯示簡單的範例。如需詳細資訊，請參閱[叢集複寫](https://hbase.apache.org/book.html#_cluster_replication)中的 HBase 文件。

1. 啟動主要叢集，這是複寫來源，並啟用 EMR WAL。若要啟用預先寫入日誌，請參閱 [啟用 Amazon EMR WAL](emr-hbase-wal-enabling.md)。此外，啟動對等叢集。對於此對等叢集，您可以選擇是否啟用 EMR WAL。

1. 在兩個叢集上，建立資料表：

   ```
   HBASE_CMD="sudo -u hbase hbase"
   echo "create 'test_replication_table',{NAME => 'CF'}" | $HBASE_CMD shell
   ```

1. 在主要叢集上新增對等設定，並啟用資料表複寫。在對等新增期間，它需要對等叢集主節點主機名稱，即 **PEER\_DNS**。

   ```
   HBASE_CMD="sudo -u hbase hbase"
   PEER_DNS="ip-10-1-1-0.ec2.com"
   PEER_NAME="aws"
   TABLE_NAME="test_replication_table"
   
   ## Create peering with the destination cluster
   echo "add_peer '$PEER_NAME', CLUSTER_KEY => '$PEER_DNS:2181:/hbase'" | $HBASE_CMD shell
   
   ## List peers in the primary cluster to confirm peer setup
   echo "list_peers" | $HBASE_CMD shell
   
   ## Enable table replication
   echo "enable_table_replication '$TABLE_NAME'" | $HBASE_CMD shell
   ```

## 確認跨叢集複寫
<a name="emr-hbase-wal-cross-cluster-confirm"></a>

執行設定步驟後，主要叢集和對等叢集之間會啟用複寫。以下測試可確認複寫是否正常運作。

1. 在主要叢集上新增資料，並確認複寫至對等叢集的資料。

   ```
   ## Write on primary cluster with HBase CLI
   
   put 'test_replication_table', 'aaa', 'CF:a', 'aaa_a1'
   put 'test_replication_table', 'bbb', 'CF:b', 'bbb_b1'
   put 'test_replication_table', 'ccc', 'CF:c', 'ccc_c1'
   ```

1. 在對等叢集上確認複寫成功。在此情況下，您應該會看到從主要叢集寫入對等叢集的複寫資料。

   ```
   ### Scan on peer cluster with HBase CLI
   
   scan 'test_replication_table'
   ```