一种Hbase增量数据迁移系统、方法及存储介质与流程

文档序号:30221718发布日期:2022-05-31 22:27阅读:77来源:国知局
一种hbase增量数据迁移系统、方法及存储介质
技术领域
:1.本发明属于hbase数据库
技术领域
:,更具体涉及混合云hbase增量数据迁移系统、方法及存储介质。
背景技术
::2.随着智能化汽车的发展,用户端与云端的数据交互越来越频繁,对数据的传输效率要求越来越高,而传统的数据库难以满足频繁且海量的数据传输及存储需求。3.hbase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,hbase不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库,目前的汽车企业通常基于hbase构建面向用户的高开发读写业务。随着云原生技术的发展,车企的it架构从单一的私有云架构往由公有云和私有云组成的混合云架构迈进,其中,hbase组件在公有云和私有云上均有部署,公有云部分承担热数据的存储和查询,私有云承担数据备份和冷数据查询业务。在混合云架构下,如何将公有云hbase集群每天的增量数据迁移到私有云hbase集群是构建稳定高效的hbase查询服务需要解决的首要问题。4.混合云hbase增量数据迁移业务场景可以抽象为hbase大批量数据写入场景:待写入的数据位于hdfs上,业务需要定期将这部分海量数据导入hbase中,以执行随机查询更新操作。在这种场景下如果调用hbase的putapi进行处理,极有可能给hbaseregionserver节点带来较大的写入压力,造成hbase集群不稳定,甚至节点宕机,该方案存在以下问题:1)引起regionserver(区域服务器)频繁大gc,导致regionserver节点宕机。5.2)引起reigonserver频繁flush,进而不断压缩、分裂,影响集群稳定性。6.3)消耗hbase集群大量的cpu磁盘、带宽资源、内存资源及io资源,与其他业务产生资源竞争。7.hbase的大批量数据写入场景一般会舍弃putapi的方案而采用bulkload方案,hbase原生提供的bulkload方案基于mapreduce计算引擎实现,mapreduce引擎是一个多进程的计算引擎,相比于多线程的分布式计算引擎spark,计算资源消耗大,计算效率低。因此,选择spark引擎实现hbase的bulkload海量数据写入在保证计算效率的情况下,可以降低计算资源的消耗。8.如我国专利cn110209653a公开的hbase数据迁移方法及装置,以实现对hbase数据的跨版本迁移。上述迁移方法包括:获取源hbase集群待迁移的表名;待迁移的表名所对应的表格为源hbase表格;在目标hbase集群中建立与源hbase表格对应的目标hbase表格;从配置文件中读取迁移配置参数;根据迁移配置参数,使用distcp工具将源hbase表格的数据文件拷贝到目标hbase集群;修复目标hbase集群的hbase元信息。在该发明实施例中,基于distcp可从源地址(源集群)直接将数据拷贝到目标地址(目标集群),从而不产生临时文件,避免了备份文件占用大量存储空间的情况的出现,保证跨版本的数据迁移得以实施。其描述了一种采用hdfsdistcp同步工具直接拷贝源集群中hbase表hfile到目标集群hbase表存储目录,再修复目标集群hbase表元数据的数据迁移方法。该方法采用直接同步hbase底层数据文件的方式,避免了调用hbaseputapi的计算资源消耗问题,但依旧会面临如下问题:1)仅适用于hbase全表迁移的场景,不适宜hbase的增量同步场景2)每次都进行hbase的全表备份,会消耗大量的公有云到私有云的专线带宽资源,成本高昂。技术实现要素:9.为解决上述问题,本发明提供了一种hbase增量数据迁移系统、方法及存储介质,实现了混合云架构下hbase源集群增量数据的高效扫描,提升效率的同时降低了计算资源的使用,具有稳定高效的混合云hbase集群增量数据同步能力。10.为了解决上述技术问题,本发明采用的技术方案是这样的:一种hbase增量数据迁移系统,其特征在于,包括源集群和目标集群,还包括,增量导出模块,用于扫描并导出源集群中的增量数据,并将该增量数据存放在源集群指定的目录中;数据同步模块,用于将所述增量数据同步到目标集群指定的目录中;文件生成模块,用于将同步到目标集群指定目录中的增量数据生成为目标集群能够加载的目标文件;数据在线加载模块,用于将所述目标文件加载到目标集群中。11.作为优化,还包括大数据分布式调度系统,用于通过任务节点的形式控制所述增量导出模块、数据同步模块、文件生成模块和数据在线加载模块定期将源集群中的增量数据迁移至目标集群。12.基于上述系统,本发明还提供了一种hbase增量数据迁移方法,包括以下步骤,s1、通过增量导出模块扫描源集群并获取增量数据,将增量数据存放在源集群指定的目录中;s2、通过数据同步模块将所述增量数据同步传输至目标集群指定的目录中;s3、通过文件生成模块读取所述增量数据,并对该增量数据进行处理,生成目标集群能够加载的目标文件;s4、通过数据在线加载模块将所述目标文件加载到目标集群中,完成增量数据由源集群向目标集群的迁移。13.作为优化,在步骤s1之前,还包括将增量导出模块、数据同步模块、文件生成模块和数据在线加载模块以任务节点的方式在大数据分布式调度系统上构建任务流,并配置该任务流的调度周期,所述任务流根据该调度周期执行步骤s1-s4完成增强数据的迁移。14.作为优化,所述增量导出模块采用hbase提供的export工具扫描并导出源集群hbase表的增量数据,并将该增量数据存放在源集群中按所述调度周期划分的hdfs目录上。15.作为优化,所述数据同步模块基于hdfsdistcp实现,其采用hdfs提供的distcp组件完成源集群到目标集群的增量数据传输,并将增量数据存放在目标集群中按所述调度周期划分的hdfs目录下。16.作为优化,所述目标集群的增量数据存储目录和源集群保持一致,并在数据同步的过程中开启bzip压缩并跳过crc检验。17.作为优化,所述文件生成模块读取目标集群中按调度周期划分的hdfs目录下的增量数据,执行数据的etl流程,生成目标集群能够加载的hfile文件并重新写回该hdfs目录。18.作为优化,所述文件生成模块为基于spark计算引擎的hfile生成模块,其生成hfile文件包括以下步骤,s301、使用spark.read算子读取增量数据并转为增量数据rdd,读取hbase增量数据的schema信息并转为schema的广播变量;s302、在增量数据rdd上应用flatmap算子并引入schema广播变量,生成hfile所需的rdd类,对rdd进行全局排序。19.s303、将排序的rdd写回到目标集群的hdfs目录中。20.本发明还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序被处理器运行时,执行上述的hbase增量数据迁移方法的步骤。21.与现有技术相比,本发明具有如下优点:本发明利用了hbase的export工具完成源集群增量数据扫描,采用hdfsdispcp完成增量数据的跨集群传输,最后使用分布式计算引擎spark将增量数据通过etl过程转为为hbase表底层的hfile文件加载到目标集群在线的hbase表中。在增量数据写入目标hbase集群的过程中规避了hbase本身提供的put方法在大写入场景下的hbaseregionserver节点大gc引发的宕机和性能降低问题,采用spark-bulkload方案在保证hbase集群稳定的情况下加速增量数据接入。本发明实现了混合云架构下hbase源集群增量数据的高效扫描;利用spark计算引擎加速增量数据生成hfile的etl流程,提升效率的同时降低计算资源的使用;采用hbase的bulkload数据加载方式,避免大批量数据直接写入hbase造成的hbase节点宕机问题,提供了稳定高效的混合云hbase集群增量数据同步能力。附图说明22.图1为本实施例的系统架构图;图2为本实施例的同步工作流构建示例;图3为本实施例的基于spark的hfile生成流程图。具体实施方式23.下面将结合附图及实施例对本发明作进一步说明。24.实施例:参见图1-图3,一种hbase增量数据迁移系统,其特征在于,包括源集群-公有云hbase,和目标集群-私有云hbase,还包括,增量导出模块,用于扫描并导出源集群中的增量数据,并将该增量数据存放在源集群指定的目录中。具体的,该模块主要用于导出源集群需要进行同步的hbase表的增量数据。将源hbase表的增量数据扫描出来存放在源集群固定的hdfs目录上。25.数据同步模块,用于将所述增量数据同步到目标集群指定的目录中。所述数据同步模块基于hdfsdistcp实现,用于将源hbase集群待同步的增量数据同步到目标集群的hdfs指定目录上。26.文件生成模块,用于将同步到目标集群指定目录中的增量数据生成为目标集群能够加载的目标文件。所述文件生成模块为hfile生成模块,基于spark实现,利用apachespark分布式计算引擎将目标集群的增量数据通过etl操作生成目标集群hbase表的hfile文件。27.数据在线加载模块,用于将所述目标文件加载到目标集群中。其采用hbase提供的importhfile工具将hfile生成模块生成好的hfile文件在线加载到目标集群hbase表中。28.还包括大数据分布式调度系统,用于通过任务节点的形式控制所述增量导出模块、数据同步模块、文件生成模块和数据在线加载模块定期将源集群中的增量数据迁移至目标集群。具体的,以上模块都以任务节点的形式挂在大数据离线调度系统上,每天凌晨定时将增量数据从公有云hbase迁移到私有云hbase。29.基于上述系统,本发明还提供了一种基于spark-bulkload的混合云hbase增量数据迁移方法,通过增量导出模块扫描源hbase集群中待同步hbase表的增量数据,将其导出到源集群的tmp目录下。数据同步模块采用hdfs提供的distcp组件完成源集群到目标集群的增量数据传输,每天的增量数据放置在一个按天划分的hdfs目录下。增量数据同步到目标集群后,hfile生成模块会读取按天划分的增量数据,执行数据的etl流程,将生成的hfile文件重新写回一个按天划分的hdfs目录下。最终,使用数据在线加载模块,将hfile生成模块产出的hfile文件在线加载到目标hbase集群中。以上四个模块以工作流的形式由大数据分布式调度系统进行每日的定时调度。30.具体包括以下步骤,s0、系统管理员将增量导出模块、数据同步模块、文件生成模块和数据在线加载模块以任务节点的方式在大数据分布式调度系统上构建任务流,并配置该任务流的调度周期,所述任务流根据该调度周期执行步骤s1-s4完成增强数据的迁移。在本实施例中,所述调度周期为一天,时间节点设在每天的凌晨。31.s1、通过增量导出模块扫描源集群并获取增量数据,将增量数据存放在源集群指定的目录中。增量导出模块为了保证读取hbase增量数据的效率,采用hbase提供的export工具,指定scanner批次大小为2000,仅导出hbase最新版本的数据以减少导出的数据量。增量数据放置在源集群hdfs的/tmp/hbase目录下,按照每个待导出的hbase表的命名空间_表名的方式构建单表,在单表的hdfs目录下按天进行目录划分。样例执行脚本如下:s2、通过数据同步模块将所述增量数据同步传输至目标集群指定的目录中。数据同步模块将增量导出模块导出的按hbase表按天分区的增量数据采用hdfsdistcp的方式同步到目标集群的hdfs的目录上,其中目标集群的增量数据存储目录和源集群保持一致,为保证跨集群数据同步的效率在执行数据同步的过程中开启bzip压缩并跳过crc检验。样例执行脚本如下:s3、通过文件生成模块读取所述增量数据,并对该增量数据进行处理,生成目标集群能够加载的目标文件。所述文件生成模块为基于spark计算引擎的hfile生成模块,读取增量数据同步模块同步到目标hdfs集群上的增量数据。将类型为sequencefile的增量数据文件转为hbase的keyvalue对象构建的rdd,然后将keyvaluerdd转换为hfileoutputformat2写出到目标集群的hdfs://target-cluster:8020/tmp/hbase/hfile/namespace_table/yyyy-mm-dd目录下。32.基于spark-bulkload的hfile生成计算逻辑如图3所示:s301、使用spark.read算子读取增量数据转为增量数据rdd,读取hbase增量数据的schema信息并转为schema的广播变量,以减少数据join的shuffle计算开销。33.s302、在增量数据rdd上应用flatmap算子并引入schema广播变量,在计算逻辑中生成hfile所需的rdd[(keyfamilyqualifier,keyvalue)]类,对rdd进行全局排序操作。[0034]s303、将按照keyfamilyqualifier排序的rdd写出到hdfs://target-cluster:8020/tmp/hbase/hfile/namespace_table/yyyy-mm-dd目录下。到此增量数据对应的hfile生成完成。[0035]hfile生成模块是一个基于spark开发的离线计算jar报,其任务提交样例脚本下所示:s4、通过数据在线加载模块将所述目标文件加载到目标集群中,完成增量数据由源集群向目标集群的迁移。数据在线加载模块使用hbase的loadincrementalhfiles组件将生成好的hfile文件在线加载到对应的hbase表中。样例执行脚本如下:本发明还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序被处理器运行时,执行上述的基于spark-bulkload的混合云hbase增量数据迁移方法的步骤。[0036]本发明利用了hbase的export工具完成源集群增量数据扫描,采用hdfsdispcp完成增量数据的跨集群传输,最后使用分布式计算引擎spark将增量数据通过etl过程转为为hbase表底层的hfile文件加载到目标集群在线的hbase表中。在增量数据写入目标hbase集群的过程中规避了hbase本身提供的put方法在大写入场景下的hbaseregionserver节点大gc引发的宕机和性能降低问题,采用spark-bulkload方案在保证hbase集群稳定的情况下加速增量数据接入。本发明实现了混合云架构下hbase源集群增量数据的高效扫描;利用spark计算引擎加速增量数据生成hfile的etl流程,提升效率的同时降低计算资源的使用;采用hbase的bulkload数据加载方式,避免大批量数据直接写入hbase造成的hbase节点宕机问题,提供了稳定高效的混合云hbase集群增量数据同步能力。[0037]最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1