The invention discloses a read-write lock algorithm on the HBASE real-time data processing method based on barrier free writing, method steps are as follows: (1) to ban HBase merger, split by internal package; (2) the definition of global variables: (3) constructor; (4): write write data and write lock will be stored the data into the client buffer list, complete the release into the lock; (5) read: read data processing with read locks to submit data to the HBASE server, complete release read locks; (6) to start a thread. Compared with the prior art, the invention adopts JAVA programming language which is used to read and write lock algorithm, the client definition automatically refresh submitted for False buffer, obtain a list of write locks to store the data, enable timing tasks read lock call HBase API data submitted, solve the high concurrent real-time write data queue is too slow to generate large amounts of data consumption packing problem.
【技术实现步骤摘要】
基于读写锁算法对HBASE实时数据无障碍写处理方法
本专利技术涉及一种计算机软件编程应用领域,尤其涉及一种基于读写锁算法对HBASE实时数据无障碍写处理方法。
技术介绍
在使用HBASE过程中发现在写入HBASE的数据量很大时,经常发生写不进去的情况,使生产队列产生大量的数据堆积。而我们基于HBASE的应用是对实时性要求很高的,一旦HBASE不能读写则会大大影响系统的使用。目前HBASE多线程写的方式有:1)client端使用了setAutoFlush(false)以及缓存的大小XMB,当table达到XMB的时候才能自动flushCommit;若批量提交时,可设置每隔N条提交一次;2)client端使用了setAutoFlush(false)以及异步定时刷新提交;这两种方法的缺点是:方式1对于实时性数据不能及时提交;方式2线程不安全,当flushCommit的同时,会有其他线程对这个table进行写入。在对HBASE实时性数据处理要求很高的情况下,这两种方法均不能很好地满足在开发过程向HBASE数据库无障碍写数据的要求。如图1、图2所示,现有的HBASE写数据方法是数据达到预设的缓存大小刷新提交到服务器。图l表示按缓存大小提交,图2是按时间刷新提交,这时,当异步刷新提交数据则需要控制写入安全。为了更好的解决写数据消费太慢队列产生大量数据堆积,因此需要建立一种针对HBASE高并发实时写数据的方法.
技术实现思路
本专利技术的目的就在于提供一种解决了高并发下对非关系型数据库实时写数据队列消费太慢产生大量数据堆积的问题,基于JAVA语言读写锁算法实现对HBASE无 ...
【技术保护点】
一种基于读写锁算法对HBASE实时数据无障碍写处理方法,其特征在于:方法步骤如下,(1)通过内部包禁止HBase合并、分裂;(2)定义全局变量:缓冲列表puts、表对应连接map、表对应缓冲数据pMap、读写锁rwl;(3)构造器:初始化表连接,如果map中默认表连接不存在,获取对应表连接,并设置自动提交为false,将表及连接对应关系存入map中;(4)写处理:写数据时加写入锁,将数据存放到client缓冲列表中,完成释放写入锁;(5)读处理:读数据时加读取锁,提交数据到HBASE服务器端,完成释放读取锁;(6)启动线程,每隔1秒执行一次读处理。
【技术特征摘要】
1.一种基于读写锁算法对HBASE实时数据无障碍写处理方法,其特征在于:方法步骤如下,(1)通过内部包禁止HBase合并、分裂;(2)定义全局变量:缓冲列表puts、表对应连接map、表对应缓冲数据pMap、读写锁rwl;(3)构造器:初始化表连接,如果map中默认表连接不存在,获取对应表连接,并设置自动提交为false,将表及连接对应关系存入map中;(4)写处理:写数据时加写入锁,将数据存放到client缓冲列表中,完成释放写入锁;(5)读处理:读数据时加读取锁,提交数据到HBASE服务器端,完成释放读取锁;(6)启动线程,每隔1秒执行一次读处理。2.根据权利要求1所述基于读写锁算法对HBASE实时数据无障碍写处理方法,其特征在于:在空闲时,运行定时任务手动将region进行合并分裂;定义全局变量缓冲列表puts、表对应连接map、表对应缓冲数据pMap、读写锁rwl;构造器初始化表连接。3.根据权利要求1所述基于读写锁算法对HBASE实时数据无障碍写处理方法,其特征在于:步骤1中,设置hbase默认不执行合并、region分裂块大小足够大。4.根据权利要求1所述基于读写锁算法对HBASE实时数据无障碍写处理方法,其特征在于:步骤2中,所述缓冲列表puts作为客户端写处理缓冲池,前提是获得写入锁即可无限制写入;表对应连接map作为读处理操作相应缓冲数据pMap提交到HBASE服务...
【专利技术属性】
技术研发人员:熊坪,
申请(专利权)人:四川长虹电器股份有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。