Hbase Replicaition实现

最近公司在实现hbase表灾备数据同步,初步定两个方案:一、对于存量数据用hbase表导入导出功能。二、对于增量数据用hbase replication功能实现实时同步。
一、hbase表导入导出功能容易实现,hbase org.apache.hadoop.hbase.mapreduce.Export [ [ []]] 将表导出;然后用distcp命令将导出表发送到备集群;hbase org.apache.hadoop.hbase.mapreduce.Import 将数据导入hbase即可实现。
二、在用hbase replicaition功能能踩过一个坑,在查资料和官方文档命令并不复杂,但有个细节需注意,
1、建表create ‘student’,{NAME=>‘f’,REPLICATION_SCOPE => ‘1‘’},注意开启复制功能
在这里插入图片描述
2、add_peer ‘11’, “master1,master2,worker1:2181:/hbase”(注意:这里写上备集群zookeeper地址,域名或ip均可);
3、set_peer_tableCFs ‘11’, “student”(没有这一步也可);
4、在备集群建一个相同表即可create ‘student’,‘f’,正常情况执行上述步骤即可实现实时同步;
下面说下踩过的坑:
1、如果备集群没有手动建表,可以用命令enable_table_replication ‘student’自动创建,我在执行时会在备集群建同样的表,但是会报错,现在没解决,不过不影响功能使用。
2、下面这个错困扰了我一天时间,就是按照上面所有操作后,仍不能实现同步,最终发现是域名问题,刚才说过在add_peer时写备集群zookeeper时可以是域名也可以是ip,但当找到备集群zookeeper时,zookeeper对应目录下备集群注册时用的是域名,本集群如果没有配集群域名时不会报错,但数据不会同步,regionserver在zookeeper保存的信息如下图:
在这里插入图片描述
主集群在找到备集群zookeeper时,还要找到备集群regionserver,如过主集群没有配置备集群域名,同步数据就不能实现,我在主集群配置备集群域名如下:在这里插入图片描述
我在这里遇到的最大坑是主集群没有配置备集群域名,当时没查到资料,有同样问题的朋友注意一下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值