本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EMR WAL 跨集群复制
从 EMR 7.5 开始,EMR WAL 支持预写日志的 HBase 跨集群复制。本主题介绍如何启用该功能并检查其是否正常工作。有关集群复制的更多详细信息,请参阅 A HBase pache 文档中的集群复制
注意
由于复制过程会从本地 EMR WAL 读取数据,因此预写日志会产生额外的读取成本。有关成本的更多详细信息,请参阅关于 Amazon EMR 发行版。
跨集群复制设置
为了获得相同的用户体验,在 EMR WAL 上启用复制功能与使用本机预 HBase 写日志相同。以下过程显示了一个简单示例。有关更多信息,请参阅集群复制中的 HBase
启动一个主集群(作为复制源),并启用 EMR WAL。要启用预写日志,请参阅启用 Amazon EMR WAL。此外,启动一个对等集群。对于此对等集群,您可以选择是否启用 EMR WAL。
在两个集群上,创建一个表:
HBASE_CMD="sudo -u hbase hbase" echo "create 'test_replication_table',{NAME => 'CF'}" | $HBASE_CMD shell在主集群上添加对等集群设置并启用表复制。在添加对等节点期间,需要对等集群主节点主机名,即 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
确认跨集群复制
执行设置步骤后,在主集群和对等集群之间启用复制。接下来进行测试,确认复制正常工作。
在主集群上添加数据,并验证复制到对等集群的数据。
## 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'确认在对等集群上复制成功。在这种情况下,您应该会看到从主集群复制到对等集群的数据。
### Scan on peer cluster with HBase CLI scan 'test_replication_table'