MapR-DB表复制入门

介绍

MapR-DB表复制允许将数据复制到可能位于同一群集或另一个群集中的另一个表。 这与自动复制和集群内复制不同,后者是将数据复制到不同的物理节点中以实现高可用性并防止数据丢失。

本教程重点介绍MapR-DB表复制,该复制在不同集群上的表之间复制数据。

在不同群集之间复制数据使您能够:

  • 提供另一级灾难恢复,以保护您的数据和应用程序免受全局数据中心故障的影响,
  • 将数据推送到应用程序和用户附近,
  • 聚合来自多个数据中心的数据。

复制拓扑

MapR-DB表复制提供各种拓扑,以使复制适应业务和技术要求:

  • 主从复制 :在这种拓扑中,您​​可以将一种方法从源表复制到副本。 副本可以在远程群集中,也可以在源表所在的群集中。
  • 多主复制 :在这种复制拓扑中,存在两种主从关系,每个表都扮演着主从角色。 客户端应用程序更新两个表,每个表将更新复制到另一个表。

在此示例中,您将学习如何设置多主复制。

先决条件

  • 2个具有Enterprise Edition许可证的MapR Clusters 5.x
    • 在此演示中,它们分别称为cluster1cluster2

设置复制

在接下来的步骤中,您将配置集群以启用mutip-master复制,如下所示:

配置集群

源群集的每个节点必须与目标群集的CLDB节点通信。 在源集群的每个节点上,编辑mapr-clusters.conf文件并添加目标集群信息。

群集1配置

cluster1所有节点中,编辑/opt/mapr/conf/mapr-clusters.conf文件并添加cluster2配置。 该文件应如下所示:

cluster1 secure=false cluster1-node1:7222 cluster1-node2:7222 cluster1-node2:7222

cluster2 secure=false cluster2-node1:7222 cluster2-node2:7222 cluster2-node3:7222

群集2配置

cluster2所有节点中,编辑/opt/mapr/conf/mapr-clusters.conf文件并添加cluster1配置。 该文件应如下所示:

cluster2 secure=false cluster2-node1:7222 cluster2-node2:7222 cluster2-node3:7222

cluster1 secure=false cluster1-node1:7222 cluster1-node2:7222 cluster1-node2:7222

您可以在文档中找到有关mapr-clusters.conf格式的信息

使用mapr用户在cluster1节点之一上打开终端窗口,然后执行以下操作:

$ ls /mapr/cluster1/
apps   hbase  installer  opt  tmp  user  var

$ ls /mapr/cluster2/
apps   hbase  installer  opt  tmp  user  var

安装和配置MapR网关

MapR网关介导源MapR集群和目标MapR集群之间的单向通信。 在此示例中,您将使用多主复制,这意味着将数据从cluster1复制到cluster2以及从cluster2复制到cluster1

好的做法是将MapR-Gateway安装到目标集群,因此在我们的情况下,让我们在cluster1节点之一上安装一个网关,在cluster2节点之一上安装一个网关。 请注意,此配置将不高度可用,通常您将按群集部署多个网关。

安装MapR-Gateway

以root身份在cluster1一个节点上,使命令适应您的linux环境,例如在节点cluster1-node2

$ yum install mapr-gateway


# Update MapR configuration
$ /opt/mapr/server/configure.sh -N cluster1 -C cluster1-node1:7222,cluster1-node2:7222,cluster1-node3:7222 -R

cluster2上执行相同的cluster2 ,例如在节点cluster2-node2上执行cluster2-node2

$ yum install mapr-gateway


# Update MapR configuration
$ /opt/mapr/server/configure.sh -N cluster1 -C cluster2-node1:7222,cluster2-node2:7222,cluster2-node3:7222 -R

注册到群集的网关

现在我们已经在每个集群上运行了网关,您必须在每个集群中注册网关

cluster1运行以下命令以将cluster2网关注册为目标:

$ maprcli cluster gateway set -dstcluster cluster2 -gateways cluster2-node2

# Check the configuration
$ maprcli cluster gateway list

cluster2运行以下命令以将cluster1网关注册为目标:

$ maprcli cluster gateway set -dstcluster cluster1 -gateways cluster1-node2

# Check the configuration
$ maprcli cluster gateway list

使用复制创建表

在终端窗口中,以cluster1上的mapr用户身份创建表并插入文档:

$ maprcli table create -path /apps/user_profiles  -tabletype json

这将创建一个新的JSON表; 也可以使用/mapr/cluster1/apps/user_profiles

现在,使用MapR-DB Shell添加文档:

$ mapr dbshell

maprdb mapr:> insert /apps/user_profiles --value '{"_id":"user001" , "first_name":"John", "last_name":"Doe"}'

maprdb mapr:> find /apps/user_profiles

添加表复制

让我们现在能够之间的复制user_profilescluster1user_profilescluster2

cluster1 ,在终端窗口上以mapr身份运行以下命令:

$ maprcli table replica autosetup -path /apps/user_profiles -replica /mapr/cluster2/apps/user_profiles -multimaster yes

您可以使用以下命令获取有关表的复制配置的信息:

$ maprcli table replica list -path /apps/user_profiles -json

测试复制

cluster2打开另一个终端,然后使用MapR-DB Shell查看复制的数据:

$ mapr dbshell

maprdb mapr:> find /apps/user_profiles
{"_id":"user001","first_name":"John","last_name":"Doe"}
1 document(s) found.

您也可以使用完整路径/mapr/cluster2/apps/user_profiles

cluster1使用MapR-DB Shell添加新文档:

$ mapr dbshell

maprdb mapr:> insert /apps/user_profiles --value '{"_id":"user002" , "first_name":"Simon", "last_name":"Dupont"}'

maprdb mapr:> find /apps/user_profiles

cluster2表中查找,您将看到数据已被复制。

您可以在cluster2插入或删除文档,并在cluster1进行查找,您会看到新文档也朝另一个方向被复制。

请注意,在本演示中,我们使用两个连接到每个集群的终端,您可以在单个MapR-DB Shell中使用全局命名空间进行一些测试。

结论

在本教程中,您学习了如何设置MapR-DB Multi-Master复制以在2个群集之间自动复制数据。

MapR-DB表复制不仅在拓扑(主从/ mult-master)方面提供了许多选项,而且还提供一些选项和命令来:

  • 复制某些列/属性或列族
  • 在受保护的群集中配置复制
  • 暂停复制。

您可以在文档中找到有关MapR-DB表复制和MapR-Gateway的更多信息:

翻译自: https://www.javacodegeeks.com/2017/08/getting-started-mapr-db-table-replication.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值