View a markdown version of this page

EMR WAL 跨集群复制 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EMR WAL 跨集群复制

从 EMR 7.5 开始,EMR WAL 支持 HBase 跨集群复制预写日志。本主题介绍如何启用该功能并检查其是否正常工作。有关集群复制的更多详细信息,请参阅 Apache HBase 文档中的 Cluster Replication

注意

由于复制过程会从本地 EMR WAL 读取数据,因此预写日志会产生额外的读取成本。有关成本的更多详细信息,请参阅关于 Amazon EMR 发行版

Cross-cluster 复制设置

为了获得相同的用户体验,在 EMR WAL 上启用复制功能与使用原生 HBase 预写日志相同。以下过程显示了一个简单示例。有关更多信息,请参阅 HBase 文档中的 Cluster Replication

  1. 启动一个主集群(作为复制源),并启用 EMR WAL。要启用预写日志,请参阅启用 Amazon EMR WAL。此外,启动一个对等集群。对于此对等集群,您可以选择是否启用 EMR WAL。

  2. 在两个集群上,创建一个表:

    HBASE_CMD="sudo -u hbase hbase" echo "create 'test_replication_table',{NAME => 'CF'}" | $HBASE_CMD shell
  3. 在主集群上添加对等集群设置并启用表复制。在添加对等节点期间,需要对等集群主节点主机名,即 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

确认跨集群复制

执行设置步骤后,在主集群和对等集群之间启用复制。接下来进行测试,确认复制正常工作。

  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'
  2. 确认在对等集群上复制成功。在这种情况下,您应该会看到从主集群复制到对等集群的数据。

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