一种解决基于HIVE元数据管理节点存储压力的方法技术

技术编号:37113340 阅读:19 留言:0更新日期:2023-04-01 05:10
本发明专利技术公开了一种解决基于HIVE元数据管理节点存储压力的方法,包括:基于业务查询请求,包括机房编号和查询时间,解析接口请求获取查询条件,并校验参数合法性;根据机房编号查询内存,获得集群列表;基于查询时间与集群列表获得目标集群列表;从内存读取目标集群列表的业务集群信息;判断查询时间在固定时间分区内,组装参数impala动态数据源表查询输入,调用本地动态数据源接口操作impala,先执行刷新当前表操作,然后再执行表查询,获得查询结果并将查询将结果封装返回。本发明专利技术节省了Hive和Impala的元数据内存占用资源,提高Impala同步Hive元数据的响应速度。步Hive元数据的响应速度。步Hive元数据的响应速度。

【技术实现步骤摘要】
一种解决基于HIVE元数据管理节点存储压力的方法


[0001]本专利技术属于大数据交互式查询领域,特别是涉及一种解决基于HIVE元数据管理节点存储压力的方法。

技术介绍

[0002]原生Hadoop版本(包括CU系统使用CDH 5.14Hadoop发行版)本身由于NameNode设计原因不支持水平扩展从而限制单个大数据HDFS集群规模,解决元数据存储压力业界大都采用存算完全分离云原生架构实现元数据水平扩展以支持千亿级别文件或对象存储,比如新一代分布式数据通用存储开源框架Apache Ozone及其生态;需要建立大规模分区数量,占用资源大,响应速度慢,甚至回出现元数据节点内存不足而导致的日志查询异常问题。因此,迫切需要提出一种新的方法来解决这些问题。

技术实现思路

[0003]为解决上述问题,本专利技术提供了如下方案:一种解决基于HIVE元数据管理节点存储压力的方法,包括:
[0004]基于业务查询请求,解析接口请求获取查询条件,并校验参数合法性;其中,所述查询条件至少包括机房编号和查询时间;
[0005]根据所述机房编号查询内存,获得集群列表;基于所述查询时间与所述集群列表获得目标集群列表;从内存读取所述目标集群列表的业务集群信息;
[0006]判断所述查询时间在固定时间分区内,组装参数impala动态数据源表查询输入,调用本地动态数据源接口操作impala,先执行刷新当前表操作,然后再执行表查询,获得查询结果并将所述查询将结果封装返回。
[0007]优选地,校验参数合法性包括依次校验字段类型、机房信息和查询时间跨度;
[0008]依次校验字段类型、机房信息和查询时间跨度的过程包括,
[0009]校验字段类型判断格式是否错误,若错误直接输出查询结果;否则,进行机房信息校验;
[0010]校验机房信息判断机房是否存在,若机房不存在直接输出查询结果;否则,进行查询时间跨度校验;
[0011]校验查询时间跨度判断查询时间跨度是否在配置参数范围,若不在配置参数范围直接输出查询结果;否则,根据所述查询条件进行内存查询。
[0012]优选地,基于所述查询时间与所述集群列表获得目标集群列表的过程包括,
[0013]根据所述查询时间查找Nacos业务集群配置,根据集群保存时间进行集群模式分类后查询数据,获得目标集群列表。
[0014]优选地,所述Nacos业务集群配置包括历史集群和磁盘阵列信息;
[0015]所述集群模式包括首选集群和/或历史集群。
[0016]优选地,所述动态数据源采用服务初始化饥饿加载先创建好数据源并管理数据源
的连接,后续有查询请求则直接从单例连接池中获取,如果在服务启动后新增和修改集群连接配置不触发新增或更新数据源,等待查询请求来后从连接池找不到则直接创建新的连接并放在连接池后再使用。
[0017]优选地,所述方法还包括:当判断所述查询时间不在固定时间分区内,则根据当前集群的JDBC驱动和查询条件封装程作为调用动态分区管理方法的输入参数;
[0018]基于所述输入参数调用动态分区管理方法并返回成功后,执行impala表刷新操作。
[0019]优选地,所述动态分区的实现过程包括:
[0020]校验所述输入参数后,开启分布式锁,获取Redis本次请求动态分区列表新创建的数量,判断新增数量是否在总队列配置阈值内,超过阈值进行错误返回;
[0021]在阈值内判断本次新增分区数和原有队列长度是否超过队列长度,未超过根据使用时间删除最久没有使用的新增个数的分区元素hive表分区,添加本次新增的分区;Redis队列更新本次分区元素score并释放分布式锁。
[0022]优选地,所述动态分区还包括动态分区初始化;所述动态分区初始化的过程包括:
[0023]加载本地配置文件,判断配置是否存在,若不存在,则动态分区初始化结束,否则加载Nacos配置文件;
[0024]判断配置是否存在,若不存在,则动态分区初始化结束,否则验证Nacos业务集群配置和动态分区配置的参数格式,若过滤格式错误则动态分区初始化结束,否则遍历业务集群列表预先创建动态数据源和管理动态数据源;
[0025]创建分布式定时任务,每小时整点执行固定时间动态分区管理任务,执行动态分区固定时间通用方法;
[0026]创建分布式定时任务,每天整点执行Hive表分区和动态分区缓存队列一致性任务,执行一致性处理通用方法,动态分区初始化结束。
[0027]优选地,所述动态分区还包括动态分区维护;所述动态分区维护包括固定长度队列缓存和固定时间队列缓存。
[0028]所述固定长度队列缓存采用ZSet数据结构;
[0029]所述固定时间队列缓存采用set数据结构;
[0030]所述ZSet数据结构、set数据结构均包括集群ID、表名称、分区名称、分区目录。
[0031]本专利技术公开了以下技术效果:
[0032]本专利技术提供的一种解决基于HIVE元数据管理节点存储压力的方法,从使用时按需动态分配资源的策略出发,使用与CDH深度集成的Impala作为交互式查询引擎,通过业务查询请求后根据业务、查询时间动态创建表分区并维持冷热数据分区队列管理,创建分区后通过Impala refresh同步一定可控规模的本业务表的Hive元数据分区信息实现最终业务交互式查询结果,此方案无需较大改动原有组件选型架构。
[0033]本专利技术实现冷热数据分离管理机制,为查询请求封装读取冷热数据逻辑,节省Hive和Impala的元数据内存占用资源。解决Impala元数据节点内存不足导致日志查询异常问题,提高Impala同步Hive元数据的响应速度。
附图说明
[0034]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为本专利技术实施例的方法流程图;
[0036]图2为本专利技术实施例的动态分区的实现流程图;
[0037]图3为本专利技术实施例的动态分区初始化的流程图。
具体实施方式
[0038]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0039]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0040]如图1所示,本专利技术提供了一种解决基于HIVE元数据管理节点存储压力的方法,包括以下步骤:
[0041]基于业务查询请求,解析接口请求获取查询条件,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种解决基于HIVE元数据管理节点存储压力的方法,其特征在于,包括:基于业务查询请求,解析接口请求获取查询条件,并校验参数合法性;其中,所述查询条件至少包括机房编号和查询时间;根据所述机房编号查询内存,获得集群列表;基于所述查询时间与所述集群列表获得目标集群列表;从内存读取所述目标集群列表的业务集群信息;判断所述查询时间在固定时间分区内,组装参数impala动态数据源表查询输入,调用本地动态数据源接口操作impala,先执行刷新当前表操作,然后再执行表查询,获得查询结果并将所述查询将结果封装返回。2.根据权利要求1所述的解决基于HIVE元数据管理节点存储压力的方法,其特征在于:校验参数合法性包括依次校验字段类型、机房信息和查询时间跨度;依次校验字段类型、机房信息和查询时间跨度的过程包括,校验字段类型判断格式是否错误,若错误直接输出查询结果;否则,进行机房信息校验;校验机房信息判断机房是否存在,若机房不存在直接输出查询结果;否则,进行查询时间跨度校验;校验查询时间跨度判断查询时间跨度是否在配置参数范围,若不在配置参数范围直接输出查询结果;否则,根据所述查询条件进行内存查询。3.根据权利要求1所述的解决基于HIVE元数据管理节点存储压力的方法,其特征在于,基于所述查询时间与所述集群列表获得目标集群列表的过程包括:根据所述查询时间查找Nacos业务集群配置,根据集群保存时间进行集群模式分类后查询数据,获得目标集群列表。4.根据权利要求3所述的解决基于HIVE元数据管理节点存储压力的方法,其特征在于:所述Nacos业务集群配置包括历史集群和磁盘阵列信息;所述集群模式包括首选集群和/或历史集群。5.根据权利要求1所述的解决基于HIVE元数据管理节点存储压力的方法,其特征在于:所述动态数据源采用服务初始化饥饿加载先创建好数据源并管理数据源的连接,后续有查询请求则直接从单例连接池中获取,如果在服务启动后新增和修改集群连接配置不触发新增或更新数据源,等待查询请求来后从连接池找不到则直接创建新的连接并放在连接池后再使用。6.根据权利要求1所述的解决基于HIVE元数据管理节...

【专利技术属性】
技术研发人员:高魁鸿
申请(专利权)人:中电信数智科技有限公司
类型:发明
国别省市:

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

1