hbase做snapshot快照失败,导致原表数据重复,解决方法

2018-01-16 12:39:04来源:网络收集作者:管理员人点击

分享

阿里云爆款

问题描述:由于要对环境hbase表数据做备份,就选择hbase快照snapshot的形式,刚开始很稳定,每天spark任务都正常跑,数据也没什么问题,最近spark跑任务时发现hbase表数据有重复,对,你没听错,hbase有重复数据,奇怪吧,看日志时发现hbase表在做快照时报错,如下图:


hbase做snapshot快照失败,导致原表数据重复,解决方法


通过报错可以看出来是hbase表在做快照时底层的region有移动,移动就几种形式:split,compact,flush,到这里算是有点眉目了,因为做快照这张表每天在拉数据时会先删表,再重新拉数据,这张表数据量有点大,数据进来后,底层数据做切分,合并需要一定时间,我在数据拉进来一定时间内做快照,是有可能失败的,因为hbase的snapshot在做快照时底层数据是不能有变化的,不然会导致快照失败,关于数据重复,只可能是元数据级别的异常,由于快照就是hbase元数据级别的操作,这里由于异常,导致hbase一份数据对应了两份元数据


解决办法:


1、我们可以在集群表数据进表后一段时间后在做快照,避开文件切分合并的高峰期,但是这种方法也会有意外发生


2、做离线快照,也就是我们在每次做快照时先把hbase表的region offline在做,先disable,再做快照


disable 'toc_v_fa_storage'snapshot 'toc_v_fa_storage','${history}_snap_toc_v_fa_storage'



enable 'toc_v_fa_storage'


hbase做snapshot快照失败,导致原表数据重复,解决方法


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台