一种基于参数配置的spark-hbase批量数据快速入库实现方法及系统技术方案

技术编号:36606593 阅读:23 留言:0更新日期:2023-02-04 18:29
本发明专利技术公开了一种基于参数配置的spark

【技术实现步骤摘要】
一种基于参数配置的spark

hbase批量数据快速入库实现方法及系统


[0001]本专利技术涉及数据库
,尤其涉及一种基于参数配置的spark

hbase批量数据快速入库实现方法以及一种基于参数配置的spark

hbase批量数据快速入库实现系统。

技术介绍

[0002]目前在spark处理批量离线以及小批实时流式数据中,针对数据加工结果需要入库hbase数据库的情况,一般采用spark

bulkload方式。
[0003]如图1所示,spark

bulkload即在spark计算完成并产生结果RDD数据集后,通过组装产生hbase的<rowkey,cell>格式的RDD数据集、排序、写入hdfs(Hadoop Distributed File System,Hadoop分布式文件系统)生成hfile文件,最后通过hbase的bulkload方式完成hfile文件加载实现数据入库。
[0004]采用此方式首先生成hfile文件并通过bulkload进行加载的好处是文件级的批量操作,避免了通过大批量单条或者批量put操作的方式对hbase数据服务器regionserver的访问压力以及I/O和CPU较大的性能开销。
[0005]spark

bulkload虽然实现了文件级的批量数据hbase入库,但是hbase表设计时,一般采用预分区的方式,根据集群规模,一般20

200个分区。在此过程存在如下两个问题:
[0006](1)spark的RDD数据集默认并不是按照hbase表的分区进行生成的,这样就会导致生成的hfile文件的开始、结束rowkey并一定会在某一个分区中,在入库hbase表时会对hfile进行频繁的分割并产生较小的hfile文件,影响数据入库效率、产生较多的hfile小文件。
[0007](2)虽然可以通过自定义spark的RDD数据分区为hbase数据分区的方式避免hfile的分割。但若在当前任务批次数据处理量较小时,分散到如200个hbase表的分区上,仍然会产生较多的hfile小文件.
[0008]所谓小文件即为hdfs上存储的明显小于数据块(默认128M)大小的文件,如10M的文件。首先对底层存储hdfs来说,hdfs本身就不适合存储大量小文件,小文件过多会导致namenode元数据特别大,占用太多内存,严重影响hdfs的性能。
[0009]其次对hbase来说,小文件过多会影响查询性能,同时会导致hbase频繁自动进行hfile文件合并操作,严重影响对hbase库的读写性能。

技术实现思路

[0010]针对上述问题,本专利技术提供了一种基于参数配置的spark

hbase批量数据快速入库实现方法及系统,通过参数配置化的方式确定数据入库合并策略,spark不再直接生成hfile文件以及入库hbase,在写入hdfs前动态计算并缩小分区数,MR任务通过不断添加源数据直到满足策略的方式合并生成hfile并入库hbase,有效利用spark内存计算以及mapreduce海量数据处理的特性,避免了hbase小文件过多的问题,提升了hbase数据库的读
写性能,减少了业务计算耗时。
[0011]为实现上述目的,本专利技术提供了一种基于参数配置的spark

hbase批量数据快速入库实现方法,包括:
[0012]针对spark引擎计算得到批量数据向hbase数据库入库的场景,配置hbase表的数据入库合并策略;
[0013]利用spark引擎对业务数据进行计算,将生成的结果数据集写入hdfs并记录至信息表;
[0014]根据所述信息表的文件生成时间顺序不断添加hdfs文件目录,在满足所述数据入库合并策略的要求时,提交MR任务以生成hfile文件;
[0015]将所述hfile文件入库至所述hbase数据库。
[0016]在上述技术方案中,优选地,基于参数配置的spark

hbase批量数据快速入库实现方法还包括:
[0017]在将所述hfile文件入库至所述hbase数据库后,清除所述hdfs的结果数据集。
[0018]在上述技术方案中,优选地,所述数据入库合并策略的配置信息包括hbase表名、写hdfs文件时每个分区的数据量、生成hfile文件的最小合并数据量、生成hfile文件的最大合并数据量、数据入库的最大允许延迟时间以及扫描间隔。
[0019]在上述技术方案中,优选地,所述将生成的结果数据集写入hdfs并记录至信息表的具体过程包括:
[0020]所述结果数据集无需组装构建为预设格式,动态计算并缩减所述结果数据集的分区数,根据所述分区数无需排序、直接将所述结果数据集写入hdfs,并记录至本批次的信息表,所述信息表包括流水、表名、hdfs文件目录、数据量、状态及生成时间。
[0021]在上述技术方案中,优选地,启动异步扫描应用,根据所述数据入库合并策略扫描所述信息表,根据所述信息表的文件生成时间顺序不断添加待处理的hdfs文件目录,直至满足所述数据入库合并策略的要求,则提交MR任务,若不满足,则进行下一次轮询;
[0022]所述MR任务将多数据源合并生成hfile文件,并通过bulkload方式将所述hfile文件加载入库至所述hbase数据库。
[0023]本专利技术还提出一种基于参数配置的spark

hbase批量数据快速入库实现系统,应用如上述技术方案中任一项公开的基于参数配置的spark

hbase批量数据快速入库实现方法,包括:
[0024]数据入库策略配置模块,用于针对spark引擎计算得到批量数据向hbase数据库入库的场景,配置hbase表的数据入库合并策略;
[0025]数据写入记录模块,用于利用spark引擎对业务数据进行计算,将生成的结果数据集写入hdfs并记录至信息表;
[0026]文件合并生成模块,用于根据所述信息表的文件生成时间顺序不断添加hdfs文件目录,在满足所述数据入库合并策略的要求时,提交MR任务以生成hfile文件;
[0027]文件入库模块,用于将所述hfile文件入库至所述hbase数据库。
[0028]在上述技术方案中,优选地,基于参数配置的spark

hbase批量数据快速入库实现系统还包括中间数据清除模块,用于在所述文件入库模块将所述hfile文件入库至所述hbase数据库后,清除所述hdfs的结果数据集。
[0029]在上述技术方案中,优选地,所述数据入库合并策略的配置信息包括hbase表名、写hdfs文件时每个分区的数据量、生成hfile文件的最小合并数据量、生成hfile文件的最大本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于参数配置的spark

hbase批量数据快速入库实现方法,其特征在于,包括:针对spark引擎计算得到批量数据向hbase数据库入库的场景,配置hbase表的数据入库合并策略;利用spark引擎对业务数据进行计算,将生成的结果数据集写入hdfs并记录至信息表;根据所述信息表的文件生成时间顺序不断添加hdfs文件目录,在满足所述数据入库合并策略的要求时,提交MR任务以生成hfile文件;将所述hfile文件入库至所述hbase数据库。2.根据权利要求1所述的基于参数配置的spark

hbase批量数据快速入库实现方法,其特征在于,还包括:在将所述hfile文件入库至所述hbase数据库后,清除所述hdfs的结果数据集。3.根据权利要求1或2所述的基于参数配置的spark

hbase批量数据快速入库实现方法,其特征在于,所述数据入库合并策略的配置信息包括hbase表名、写hdfs文件时每个分区的数据量、生成hfile文件的最小合并数据量、生成hfile文件的最大合并数据量、数据入库的最大允许延迟时间以及扫描间隔。4.根据权利要求3所述的基于参数配置的spark

hbase批量数据快速入库实现方法,其特征在于,所述将生成的结果数据集写入hdfs并记录至信息表的具体过程包括:所述结果数据集无需组装构建为预设格式,动态计算并缩减所述结果数据集的分区数,根据所述分区数无需排序、直接将所述结果数据集写入hdfs,并记录至本批次的信息表,所述信息表包括流水、表名、hdfs文件目录、数据量、状态及生成时间。5.根据权利要求3所述的基于参数配置的spark

hbase批量数据快速入库实现方法,其特征在于:启动异步扫描应用,根据所述数据入库合并策略扫描所述信息表,根据所述信息表的文件生成时间顺序不断添加待处理的hdfs文件目录,直至满足所述数据入库合并策略的要求,则提交MR任务,若不满足,则进行下一次轮询;所述MR任务将多数据源合并生成hfile文件,并通过bulkload方式将所述hfile文件加载入库至所述hbase数据库。6.一种基于参数配置的spark

hbase批量数据快速入库实现系统,其特征在于,应用如权利要求1至5中任一项所述的基于参...

【专利技术属性】
技术研发人员:朱常杰
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

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

1