针对kafka的Hbase数据库的入库方法和系统技术方案

技术编号:15118362 阅读:168 留言:0更新日期:2017-04-09 16:07
本发明专利技术涉及一种针对kafka的Hbase数据库的入库方法,包括:S1:收集kafka集群内所有topic的数据,并保存在队列中;S2:在配置文件中配置topic和所述数据中的分隔符、过滤规则、入库规则的对应关系;S3:根据所述对应关系,将数据序列化,并对所述数据进行过滤;S4:读取所述配置文件中的配置信息,创建与Hbase数据库的连接,并将所述数据构建成put对象;S5:将所述put对象入库所述Hbase数据库。本发明专利技术解决了针对kafka中不同topic需要进行单独处理的问题,提供一种通用适配所有topic的方法,并构建了一种高性能的Hbase数据库入库方法,极大的提高了数据写入的效率,提升了输出带宽,最大限度利用了机器的网络和磁盘性能,通过双队列设计,最大限度保证了数据的安全,避免了数据的丢失。

【技术实现步骤摘要】

本专利技术涉及计算机数据处理的
,特别涉及一种针对kafka的Hbase数据库的入库方法和系统
技术介绍
Kafka(分布式消息队列)是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作数据流。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop(分布式系统框架)一样的日志数据和离线分析系统,因为受到要求实时处理的限制,采用kafka进行处理是一个可行的解决方案。kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群制来提供实时的消费。Hbase数据库是一个分布式的、面向列的开源数据库,利用Hbase数据库技术可在廉价PCServer(服务器)上搭建起大规模结构化存储集群。Hbase数据库是GoogleBigtable(分布式数据存储系统)的开源实现,类似GoogleBigtable利用GFS(可扩展的分布式文件系统)作为其文件存储系统,Hbase数据库用HadoopHDFS(分布式文件系统)作为其文件存储系统;Google运行MapReduc(编程模型)来处理Bigtable中的海量数据,Hbase数据库同样利用HadoopMapReduce来处理Hbase数据库中的海量数据;GoogleBigtable利用r>Chubby作为协同服务,Hbase数据库利用Zookeeper(分布式应用程序协调服务)作为对应。在数据采集过程中,数据经过kafka中转是很常见的做法,kafka设计许多主题(topic),针对不同的topic进行数据写入Hbase数据库,通常需要有不同的做法来使得数据写入Hbase数据库,因为数据在结构和内容上不同,topic是不同的,这样使得针对不同的topic需要进行编写单独的逻辑代码进行数据写入,比较费时费力,效率低下,且不利于后期维护,逻辑过多维护成本高。
技术实现思路
本专利技术所要解决的技术问题是如何提供一种通用的适用不同kafkatopic的Hbase数据库入库方法和系统,能够针对不同的topic,以最少的工作、最快的效率和最低的维护成本来完成数据写入的工作。为此目的,本专利技术提出了一种针对分布式消息队列的Hbase数据库的入库方法,包括如下步骤:一种针对kafka的Hbase数据库的入库方法,其特征在于,包括如下步骤:S1:收集kafka集群内所有主题的数据,并保存在队列中;S2:在配置文件中配置主题和所述数据中的分隔符、过滤规则、入库规则的对应关系;S3:根据所述对应关系,将所述数据序列化,并对所述数据进行过滤;S4:读取所述配置文件中的配置信息,创建与Hbase数据库的连接,并将所述数据构建成put对象;S5:将所述put对象入库所述Hbase数据库。其中较优的,如果个别主题不适用于通用入库方式,则该方法还包括:通过反射获取针对对应主题的独立处理类来对所述对应主题的数据进行处理。其中较优的,所述put对象入库Hbase数据库包括:通过调用所述Hbase数据库入库接口将所述数据写入所述Hbase数据库。其中较优的,所述配置文件的配置信息包括数据过滤规则、数据入库规则、主题与独立处理类的对应关系以及主题与Hbase数据库表的对应关系。其中较优的,所述put对象入库Hbase数据库包括:通过调用所述Hbase数据库的入库框架提供的接口将所述数据通过所述入库框架完成数据写入Hbase数据库。其中较优的,所述构建put对象的过程包括:根据所述配置文件的规则,对所述数据再次进行序列化,构建成入库所述Hbase数据库所需的对象类型。其中较优的,所述将put对象入库Hbase数据库包括如下步骤:S51:根据所述队列得到表名,根据所述表名分配操作线程组、表对象组以及和所述操作线程组、表对象组一一对应的缓冲区;S52:所述操作线程组处理接收到的数据,并将接收到的数据写入对应缓冲区中;S53:获取所述缓冲区中的数据以及对应的表对象组,按顺序将所述数据分配给对应的表对象组进行数据写入。其中较优的,所述将数据写入对应缓冲区中是采用队列的形式进行写入。其中较优的,所述表对象组进行数据写入采用并行多队列的形式。另一方面,本专利技术还提供了一种针对kafka的Hbase数据库的入库系统,包括:数据采集单元,用于收集kafka集群内所有主题的数据,并保存在队列中;配置单元,用于在所述配置文件中配置主题和所述数据中的分隔符、过滤规则、入库规则的对应关系;序列化过滤单元,用于根据所述对应关系,将所述数据序列化,并对所述数据进行过滤;对象构建单元,用于读取所述配置文件中的配置信息,创建与Hbase数据库的连接,并将所述数据构建成put对象;数据入库单元,用于将所述put对象入库Hbase数据库。其中较优的,如果个别主题不适用于通用入库方式,则该系统还包括:独立处理单元,所述独立处理单元通过反射获取针对对应主题的独立处理类来对所述主题的数据进行处理。通过采用本专利技术所提供的针对分布式消息队列的Hbase数据库的入库方法和系统,解决了针对kafka中不同topic需要进行单独处理的问题,通过通用的方式对kafka集群内的不同类型数据进行消费并统一存储入Hbase数据库,另外,采用多线程多Htable对象以及生产者消费者模式极大的提高了数据写入的效率,提升了输出带宽,最大限度利用了机器的网络和磁盘性能。通过双队列设计,最大限度保证了数据的安全,避免了数据的丢失。附图说明通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中:图1示出了本专利技术针对kafka的Hbase数据库的入库方法流程示意图;图2示出了本专利技术针对kafka的Hbase数据库的详细入库流程示意图。具体实施方式下面将结合附图对本专利技术的实施例进行详细描述。如图1所示,本专利技术提供了一种针对kafka(分布式消息队列)的Hbase数据库的入库方法,其特征在于,包括如下步骤:一种针对kafka的Hbase数据库的入库方法,其特征在于,包括如下步骤:S1:收集kafka集群内所有topic(主题本文档来自技高网...

【技术保护点】
一种针对kafka的Hbase数据库的入库方法,其特征在于,包括如下步骤:S1:收集kafka集群内所有主题的数据,并保存在队列中;S2:在配置文件中配置主题和所述数据中的分隔符、过滤规则、入库规则的对应关系;S3:根据所述对应关系,将所述数据序列化,并对所述数据进行过滤;S4:读取所述配置文件中的配置信息,创建与Hbase数据库的连接,并将所述数据构建成put对象;S5:将所述put对象入库所述Hbase数据库。

【技术特征摘要】
1.一种针对kafka的Hbase数据库的入库方法,其特征在于,包括
如下步骤:
S1:收集kafka集群内所有主题的数据,并保存在队列中;
S2:在配置文件中配置主题和所述数据中的分隔符、过滤规则、
入库规则的对应关系;
S3:根据所述对应关系,将所述数据序列化,并对所述数据进行
过滤;
S4:读取所述配置文件中的配置信息,创建与Hbase数据库的连
接,并将所述数据构建成put对象;
S5:将所述put对象入库所述Hbase数据库。
2.根据权利要求1所述的针对kafka的Hbase数据库的入库方法,
其特征在于,如果个别主题不适用于通用入库方式,则该方法还包括:
通过反射获取针对对应主题的独立处理类来对所述对应主题的数据
进行处理。
3.根据权利要求2所述的针对kafka的Hbase数据库的入库方法,
其特征在于,所述配置文件的配置信息包括数据过滤规则、数据入库
规则、主题与独立处理类的对应关系以及主题与Hbase数据库表的对
应关系。
4.根据权利要求1或2所述的针对kafka的Hbase数据库的入库方
法,其特征在于,所述put对象入库Hbase数据库包括:通过调用所述
Hbase数据库的入库框架提供的接口将所述数据通过所述入库框架完
成数据写入Hbase数据库。
5.根据权利要求1或2所述的针对kafka的Hbase数据库的入库方
法,其特征在于,所述构建put对象的过程包括:根据所述配置文件
的规则,对所述数据再次进行序列化,构建成入库所述Hbase数据库
所需的对象类型。
6.根据权利要求1或2所述的针对kafka的Hbase数据库的入库方

【专利技术属性】
技术研发人员:曹宇余效伟肖赞李旭阳
申请(专利权)人:北京中交兴路车联网科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1