本发明涉及HBase集群领域,尤其涉及一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法。

背景技术:

随着云计算技术的不断发展,云计算技术不断落地成为支撑各行业信息技术发展的重要支柱。基于Hadoop和HBase的分布式集群,如今已成为国内外云计算热门研究对象。Hadoop的HDFS分布式存储为云平台提供了分布式文件存储系统,而HBase因为具有良好的读写性能,并且能够支持大数据量的表,因而适用于简单业务、数据量巨大的在线数据库及数据仓库。由于HBase对事务的支持比较弱,只支持行级事务,因此业务数据库往往由mysql、oracle等成熟的关系型数据库担任,同时HBase能够轻而易举的承载海量数据,这是传统关系数据库不可比拟的,因此HBase往往用来做数据仓库,存储历史明细数据。由于历史数据数据量往往十分巨大,想要根据任意关键字查询数据,需要对每条数据的每个字段全部扫描一遍,犹如大海捞针,常用解决这个问题的手段是对数据在Solr或ElasticSearch中建立全文索引。当前对HBase数据建立全文索引,不再写入HBase,而是将数据写入消息队列,然后通过流式计算分发数据,写入HBase和建立全文索引。这种方式需要将数据存在消息队列中,并且需要编程实现流式计算,增加了存储和计算开销。

技术实现要素:

为了克服上述现有技术中的不足,本发明提供方法包括:

在HBase集群中配置Zookeeper,建立全文索引Table_Index表;

HBase集群基于Zookeeper将集群的所有节点配置成一队列,在所述队列中存放每个节点的读取WAL日志;

在Table_Index表中对应的每个节点位开启单独线程,按照队列的次序,将每个节点的WAL日志对应到Table_Index表的节点位,每个节点位上设有一HBase集群节点的读取WAL日志以及节点的开启线程。

优选地,当队列中的节点WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除。

优选地,当队列中有新的节点加入时,生成所述节点的WAL日志,并将所述节点的WAL日志对应到Table_Index表的空闲节点位,开启所述节点线程;

所述节点的WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除。

优选地,通过获取Table_Index表中节点位的WAL日志以及开启线程,获取HBase集群中的节点,对所述节点进行配置。

优选地,对Table_Index表的操作记录建立全文索引并写入Solr或ElasticSearch中。

一种基于HBase集群的数据读取方法,方法包括:

客户端输入待操作的节点信息,对待操作的节点信息进行缓存;

客户端从HBase集群中读取Table_Index表,通过待操作的节点信息获取Table_Index表中对应的所述节点位及WAL日志;

将所述节点位对应的节点与客户端建立读取线程。

一种基于HBase集群的数据写入方法,方法包括:

客户端向HBase集群提交一个写请求;

HBase集群接收所述写请求,并将写入的数据写到WAL中;

当数据写到WAL之后,将数据对应至HBase集群的节点;

将所述节点配置到队列中,在所述队列中存放每个节点的读取WAL日志;

将所述节点的WAL日志对应到Table_Index表的空闲节点位,开启所述节点线程;

所述节点的WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除;

所述数据形成WAL日志之后,回复给发送客户端确认信息。

从以上技术方案可以看出,本发明具有以下优点:

通过对WAL日志进行读取并解析,然后对HBase集群数据建立全文索引的方法,具有很好的时效性,并且避免了额外的数据处理带来的存储和计算开销,对需要建立全文索引的Table_Index表和字段都是可配置的,无需编程,同时由于是异步进行的,对HBase集群的性能影响小。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为构建HBase集群全文索引方法流程图;

图2为基于HBase集群的数据读取方法流程图;

图3为基于HBase集群的数据写入方法流程图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本实施例提供一种构建HBase集群全文索引方法,如图1所示,方法包括:

S1,在HBase集群中配置Zookeeper,建立全文索引Table_Index表;

S2,HBase集群基于Zookeeper将集群的所有节点配置成一队列,在所述队列中存放每个节点的读取WAL日志;

S3,在Table_Index表中对应的每个节点位开启单独线程,按照队列的次序,将每个节点的WAL日志对应到Table_Index表的节点位,每个节点位上设有一HBase集群节点的读取WAL日志以及节点的开启线程。

本实施例中,当队列中的节点WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除。

当队列中有新的节点加入时,生成所述节点的WAL日志,并将所述节点的WAL日志对应到Table_Index表的空闲节点位,开启所述节点线程;

所述节点的WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除。

本实施例中,通过获取Table_Index表中节点位的WAL日志以及开启线程,获取HBase集群中的节点,对所述节点进行配置。

对Table_Index表的操作记录建立全文索引并写入Solr或ElasticSearch中。

通过对HBaseWAL日志进行读取并解析,然后对HBase数据建立全文索引的方法,具有很好的时效性,并且避免了额外的数据处理带来的存储和计算开销,对需要建立全文索引的HBase表和字段都是可配置的,无需编程,同时由于是异步进行的,对HBase的性能影响小。

通过解析HBase的WAL日志,使数据在写入HBase数据库的同时,文件即可分析出需要建立索引的数据,进而将解析出的数据根据配置在搜索引擎系统中建立索引。

大数据场景下的HBase数据进行异步实时构建全文索引。通过对HBase的WAL日志的读取和分析,根据用户的配置,对数据构建全文索引。具有很好的时效性。在数据写入HBase的同时,读取并分析HBase的操作日志。通过配置文件对HBase的操作日志进行分析并建立全文索引。

HBase因为具有良好的读写性能,并且能够支持大数据量的表,因而适用于简单业务、数据量巨大的在线数据库及数据仓库,供用户查询分析。由于历史数据数据量往往十分巨大,想要根据任意关键字查询数据,需要对每条数据的每个字段全部扫描一遍,需要对HBase数据建立全文索引。当前对HBase数据建立全文索引存在两大弊端:一是时效性差,影响HBase自身性能;二是需要额外的存储和计算开销。通过对HBase的操作日志进行读取并分析,可以异步的对用户所关心的数据根据配置文件建立全文索引。这种方法时效性强,数据进入HBase后立刻就能对数据进行关键字查询,并且不需要额外的存储和计算开销,同时不影响HBase自身性能。HBase的写数据过程为了保证数据的可靠性,首先将数据写入WAL日志,WAL日志只记录两种操作,写入和删除。这样在HBase发生意外宕机时,能够自动的根据WAL日志中的记录,恢复用户操作。WAL日志会定期滚动。

本发明还提供一种基于HBase集群的数据读取方法,如图2所示,方法包括:

S11,客户端输入待操作的节点信息,对待操作的节点信息进行缓存;

S12,客户端从HBase集群中读取Table_Index表,通过待操作的节点信息获取Table_Index表中对应的所述节点位及WAL日志;

S13,将所述节点位对应的节点与客户端建立读取线程。

本发明还提供一种基于HBase集群的数据写入方法,如图3所示,方法包括:

S21,客户端向HBase集群提交一个写请求;

S22,HBase集群接收所述写请求,并将写入的数据写到WAL中;

S23,当数据写到WAL之后,将数据对应至HBase集群的节点;

S24,将所述节点配置到队列中,在所述队列中存放每个节点的读取WAL日志;

S25,将所述节点的WAL日志对应到Table_Index表的空闲节点位,开启所述节点线程;

S26,所述节点的WAL日志对应到Table_Index表的节点位后,将队列中的所述节点的WAL日志删除;

S27,所述数据形成WAL日志之后,回复给发送客户端确认信息。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

hbase集群 数据写入_一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法与流程...相关推荐

  1. html webservice数据交互_一种基于WebService的数据交换方法

    一种基于WebService的数据交换方法 [专利摘要]本发明涉及数据交换[技术领域],特别涉及一种基于WebService的数据交换方法.本发明是以Web服务为依托,通过定义参数的方式进行传入内容和 ...

  2. label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...

    导语: 马上就要五一了,祝全世界人民五一快乐!在这之前,想过好几个准备这些天可以完成的专题,比如Boosting系列在搞点最近几年的新玩意,或者开一个新专题,如心心念念的GNN/GCN(主要是又可以去 ...

  3. xml建模包括以下_一种基于xml建模的印刷出版中多元组合符号自动生成方法

    一种基于xml建模的印刷出版中多元组合符号自动生成方法 [技术领域] [0001] 本发明属于印刷出版技术领域,具体涉及一种基于XML建模的印刷出版中多元组 合符号自动生成方法. [背景技术] [00 ...

  4. python读取raw数据文件_【Python】OGR库(1):读取矢量数据

    OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...

  5. 程序员群名称大全_微信群群名技巧和群名称大全(上)

    小编之前整理了三种方式创建微信群,送佛送到西,微信群创建完成后我们要做的就是修改微信群名称,拉人进微信群. 今天[微信新手教程]第二期将对微信群名技巧和好听的微信群名称大全! 一.首先小编科普下微信群 ...

  6. java监听微信_一种基于java后台应用监控微信小程序的用户访问量的方法与流程...

    本发明涉及java应用与微信小程序应用开发技术领域,具体涉及一种基于java后台应用监控微信小程序的用户访问量的方法. 背景技术: 微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了 ...

  7. pcb钻孔披锋改善报告_一种改善PCB板沉铜半孔披锋的钻孔系统及方法与流程

    技术领域 本发明涉及PCB加工领域,特别是涉及一种改善PCB板沉铜半孔披锋的钻孔系统及方法. 背景技术: 针对有PTH半孔的PCB板,按正常的工艺流程制作,成品板的半孔位置有很严重的披锋毛刺,影响SM ...

  8. python构建知识图谱_一种构建知识图谱的方法及系统与流程

    本发明涉及计算机领域,具体涉及一种构建知识图谱的方法及系统. 背景技术: 随着人工智能技术的不断发展,智能机器人被越来越多的应用于人类的生产生活当中. 在智能机器人与人类的交互过程中,为了提高智能机器 ...

  9. skew算法_一种基于FPGA的多通道高速输入信号自动de‑skew算法的制作方法

    本发明涉及高速数据采集技术,更具体的涉及一种基于FPGA的多通道高速输入信号自动de-skew算法. 背景技术: 随着对精度和速率要求越来越高,目前数据采集系统向着多通道和超高速两个方向发展.多通道高 ...

最新文章

  1. Nature:拟南芥根系微生物组的结构
  2. LeetCode第 146 号问题: LRU 缓存机制
  3. 【Verilog语法】PC-relatve branch 以及 Delay Slot 的含义
  4. APP技巧:微信10个实用小技巧,太实用了,赶紧收藏!
  5. JSch:Java Secure Channel -- java 代码实现 ssh 远程操作
  6. python搜论文_python论文
  7. android 通知_Android 全局消息通知框架实现(类似EventBus)
  8. VS2008 Qt Designer 中自定义信号槽
  9. 今天算做正式开始SP开发吧,第一步当然是将down下来的资料好好地看一看,顺便也记下这些有用的地址...
  10. 如何制作一款HTML5 RPG游戏引擎——第二篇,烟雨+飞雪效果
  11. ArcGIS Maritime Server 开发教程(四)Maritime Service 开发实践
  12. 关于javaswing做的游戏的一点小总结x
  13. python随机生成6位数验证码
  14. MapStruct 详解
  15. Android布局——小米便签编辑界面xml
  16. 软通动力华为项目组Java开发面试总结
  17. 从VLP-16讲起的激光雷达原理(一)概念篇
  18. CapstoneCS5211,CS5212,CS5256,CS5811,CS5288,……型号大全
  19. 截止失真放大电路_5.深入浅出:多级放大电路种类及动态分析
  20. 认识计算机系统授课计划,计算机网络技术基础授课计划.doc

热门文章

  1. i春秋网鼎杯网络安全大赛advanced题目writeup
  2. TTL与CMOS悬空接法
  3. python查询mysql数据库_python针对mysql数据库的连接、查询、更新、删除操作示例...
  4. lisp实现框选裁切_《剪切成虚线》v3.1版(支持框选)
  5. 辛选主播首秀即登榜,直播复盘背后的“吸金术”
  6. Android 开发之Loading
  7. python祝福代码_python实现弹窗祝福效果
  8. 599. 两个列表的最小索引总和
  9. 利用IDEA工具导入csv表格文件到数据库
  10. GPS Ublox配置