一种基于持久化MQ的hbase容错方法与流程

文档序号:12470200阅读:411来源:国知局

本发明涉及大数据相关NOSQL技术领域,特别涉及一种基于持久化MQ的hbase容错方法。



背景技术:

HBASE作为一种基于HADOOP架构体系的NOSQL数据库,已经广泛的应用在各种行业中;HBASE自身带有一套基于LOG的数据容错机制,可以对数据写入过程中出现的服务器宕机、内存溢出、网络故障等造成的异常状况进行记录,并在HBASE集群重启时通过LOG进行恢复。但HBASE的LOG机制的处理过程非常复杂,本身涉及到了拆分以及集群的数据平衡等因素,造成恢复的时间成本非常高,而且LOG的写入有数据量的限制,无法对实时写入的数据进行恢复。

市面上对HBASE的容错和备份都是基于多节点备份或HDFS的数据容灾方式实现的容错思路,本质上是在HBASE发生异常后能够及时进行重启替换为备份节点或防止以写入完成的数据因磁盘故障而造成丢失的问题,并没有考虑未写入数据丢失的情况。

针对上述问题,本发明设计了一种基于持久化MQ的hbase容错方法,对HBASE内部进行简单改进,将HBASE的RPC写入信息在消息队列中进行保存。当集群重启时,从消息队列中进行获取数据并重新写入数据库,既保证了的HBASE的恢复速度,也可以解决未写入数据的丢失问题。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于持久化MQ的hbase容错方法。

本发明是通过如下技术方案实现的:

一种基于持久化MQ的hbase容错方法,其特征在于:通过在数据写入HBASE的阶段对其在MQ中进行备份,若HBASE未完成对写操作,对应的写请求便会保存在MQ中,当HBASE重启恢复时,从MQ系统消息队列中找到未完成操作的数据,重新进行写入即可。

本发明基于持久化MQ的hbase容错方法,包括以下步骤:

(1)首先搭建支持持久化的MQ系统;

(2)对HBASE核心部分进行修改,在zookeeper消息接口处进行拦截,对所有的写请求进行拦截,将其加入MQ系统中,之后正常进行HBASE的后续过程;

(3)拦截HBASE异步操作的后续过程,根据当前成功完成的操作内容,从MQ系统中删除之前的加入的请求;

(4)修改HBASE的启动部分,在HBASE的LOG SPLIT操作之后增加额外操作,启动新的进程,从MQ系统消息队列中获取未完成操作的数据,通过HBASE客户端重新写入,完成操作。

所述步骤(2)中,写请求包括PUT请求和DELETE请求。

本发明的有益效果是:该基于持久化MQ的hbase容错方法,解决了HBASE因宕机造成未写入数据丢失的问题,同时将写操作的恢复单独备份在MQ中,与LOG恢复方法分开缩短了HBASE集群在宕机等异常情况发生后的恢复时间,提高了生产环境下容错能力和可靠性,保障了HBASE数据的安全,减少了额外的运维成本。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该基于持久化MQ的hbase容错方法,通过在数据写入HBASE的阶段对其在MQ中进行备份,若HBASE未完成对写操作,对应的写请求便会保存在MQ中,当HBASE重启恢复时,从MQ系统消息队列中找到未完成操作的数据,重新进行写入即可。

该基于持久化MQ的hbase容错方法,包括以下步骤:

(1)首先搭建支持持久化的MQ系统,可以是kafka、rocketmq、activemq等;

(2)对HBASE核心部分进行修改,在zookeeper消息接口处进行拦截,对所有的写请求进行拦截(包括PUT、DELETE),将其加入MQ系统中,之后正常进行HBASE的后续过程;

(3)拦截HBASE异步操作的后续过程,根据当前成功完成的操作内容,从MQ系统中删除之前的加入的请求;

(4)修改HBASE的启动部分,在HBASE的LOG SPLIT操作之后增加额外操作,启动新的进程,从MQ系统消息队列中获取未完成操作的数据,通过HBASE客户端重新写入,完成操作。

该基于持久化MQ的hbase容错方法,解决了HBASE因宕机造成的未写入数据丢失问题,同时将写操作的恢复单独备份在MQ中,与LOG恢复方法分开缩短了HBASE集群在宕机等异常情况发生后的恢复时间,提高了生产环境下容错能力和可靠性,保障了HBASE数据的安全,减少了额外的运维成本。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1