使用hbase快照跨集群复制表经常失败

我们hbase上有非常多的批量写入,持续约有12个小时左右集群水位都比较满,因此另外做了一个读集群,定时从加工集群复制数据过去,个别表三备份前超过10T。
复制采用快照的方式:
1.源端建快照-》2.目标执行ExportSnapshot-》3.目标disable表-》4.目标restore快照-》5.目标enable表-》6.目标删除快照。
 
问题是每一个环节都有可能失败,比如1、3、4频率会比较高,目前的策略是等待+重试,基本可以解决。
 
但没从根本上解决问题,还请各位大神帮忙看看有什么好办法。
 
谢谢~
已邀请:

smartZY

赞同来自:

snapshot 失败的原因一般是因为表在这个过程中 region split,或者集群有balance操作导致region close reopen在其他rs上。
我曾经对一张1t的表做snapshot的表做快照的时候失败过,还踩过snapshot的坑。
按照我的理解,如果在做snapshot的时候关掉balance 会规避第二个点。至于这个过程中region split了,那是没办法的,如果要把表的spilt策略设置为Disable的话,ddl会导致表分钟级别不可用,之后还要再换回默认的split策略,这样的方式不够优雅。
所以我建议你做snapshot的时候暂时关闭balance,可能会降低失败的可能性。

要回复问题请先登录注册