一种用于Hive-SQL执行效率的提升方法及系统技术方案

技术编号:33530463 阅读:29 留言:0更新日期:2022-05-19 02:00
本发明专利技术公开了一种用于Hive

【技术实现步骤摘要】
一种用于Hive

SQL执行效率的提升方法及系统


[0001]本专利技术公开一种用于Hive

SQL执行效率的提升方法及系统,涉及计算存储


技术介绍

[0002]随着生产力、消费力的不断解放,企业的业务场景、业务流程不断迭代,在这样高速高压的环境下,社会各界组织的决策者需要以高效便捷的手段来把控组织运营状态,每天需要浏览大量的、关键的业务指标,很显然不断增长的业务分析需求让组织存储计算集群倍感压力。
[0003]Hive

SQL计算脚本是一种常用的、广泛的数据计算载体,常用来搭建离线数据仓库。集群面临的压力即,在传统的数仓开发中,数据工程师在实现数仓分层、指标计算时仅考虑如何完成需求,往往忽略了对代码、对执行策略的优化,久而久之计算集群疲惫不堪,对新增的Hive

SQL计算脚本无暇顾及,而往日的计算脚本则令其气喘吁吁。
[0004]在这种背景之下,为了给有限的计算资源“解绑”,使其有能力面对未来更多的Hive

SQL计算脚本并能游刃有余地应对往日的Hive

SQL计算脚本,故先专利技术一种用于Hive

SQL执行效率的提升方法及系统,以解决上述问题。

技术实现思路

[0005]本专利技术针对现有技术的问题,提供一种用于Hive

SQL执行效率的提升方法及系统,所采用的技术方案为:一种用于Hive

SQL执行效率的提升方法,所述的方法具体步骤如下:
[0006]S1基于当下计算任务的跑数表现选择最优的YARN调度器;
[0007]S2基于队列利用率对计算任务关键环节任务进行并行拆分;
[0008]S3优化计算引擎、mapper以及reducer数量配置,优化代码计算逻辑;
[0009]S4对存在数据倾斜问题的进行倾斜治理。
[0010]所述S1基于当下计算任务的跑数表现选择最优的YARN调度器的具体步骤如下:
[0011]S101基于组织的Hive

SQL计算脚本执行特点选择最优的调取器策略;
[0012]S102对队列执行时序要求且顺序固定的一组Hive

SQL计算脚本采用FIFO Scheduler调度策略;
[0013]S112对队列既要执行需求有时序要求且顺序固定的一组Hive

SQL计算脚本,又要应对随机的,低频率的临时查询时采用Capacity Scheduler调度策略;
[0014]S122对存在大量的、针对不同需求的Hive

SQL计算脚本,且会发生随机的、高频率的临时查询时,采用Fair Scheduler调度策略。
[0015]所述S2基于队列利用率对计算任务关键环节任务进行并行拆分的具体步骤如下:
[0016]S201对数据来源表按业务关键拆分;
[0017]S202通过where关键字对最大化均分数据量的字段加以限制;
[0018]S203将该计算脚本拆分为多个并行的计算脚本。
[0019]所述S3优化计算引擎、mapper以及reducer数量配置,优化代码计算逻辑的具体步骤如下:
[0020]S301更改Hive的计算引擎为TEZ;
[0021]S302利用TEZ计算引擎将计算解析为先执行全部map任务,再执行全部reduce任务。
[0022]所述S4对存在数据倾斜问题的进行倾斜治理的具体步骤如下:
[0023]S401通过执行日志发现倾斜问题,找出倾斜问题发生的key;
[0024]S402对key所在的代码段基于nvl()函数以及rand()函数进行治理。
[0025]一种用于Hive

SQL执行效率的提升系统,所述的系统具体包括策略优化模块、任务处理模块、代码优化模块和倾斜治理模块:
[0026]策略优化模块:基于当下计算任务的跑数表现选择最优的YARN调度器;
[0027]任务处理模块:基于队列利用率对计算任务关键环节任务进行并行拆分;
[0028]代码优化模块:优化计算引擎、mapper以及reducer数量配置,优化代码计算逻辑;
[0029]倾斜治理模块:对存在数据倾斜问题的进行倾斜治理。
[0030]所述策略优化模块具体包括策略选择模块、策略执行模块A、策略执行模块B和策略执行模块C:
[0031]策略选择模块:基于组织的Hive

SQL计算脚本执行特点选择最优的调取器策略;
[0032]策略执行模块A:对队列执行时序要求且顺序固定的一组Hive

SQL计算脚本采用FIFO Scheduler调度策略;
[0033]策略执行模块B:对队列既要执行需求有时序要求且顺序固定的一组Hive

SQL计算脚本,又要应对随机的,低频率的临时查询时采用Capacity Scheduler调度策略;
[0034]策略执行模块C:对存在大量的、针对不同需求的Hive

SQL计算脚本,且会发生随机的、高频率的临时查询时,采用Fair Scheduler调度策略。
[0035]所述任务处理模块具体包括数据拆分模块、字段限制模块和脚本拆分模块:
[0036]数据拆分模块:对数据来源表按业务关键拆分;
[0037]字段限制模块:通过where关键字对最大化均分数据量的字段加以限制;
[0038]脚本拆分模块:将该计算脚本拆分为多个并行的计算脚本。
[0039]所述代码优化模块具体包括引擎更改模块和计算解析模块:
[0040]引擎更改模块:更改Hive的计算引擎为TEZ;
[0041]计算解析模块:利用TEZ计算引擎将计算解析为先执行全部map任务,再执行全部reduce任务。
[0042]所述倾斜治理模块具体包括问题发现模块和函数治理模块:
[0043]问题发现模块:通过执行日志发现倾斜问题,找出倾斜问题发生的key;
[0044]函数治理模块:对key所在的代码段基于nvl()函数以及rand()函数进行治理。
[0045]本专利技术的有益效果为:本专利技术是一种用于Hive

SQL执行效率的提升方法,包括:基于当下Hive

SQL计算脚本的跑数表现,通过更改配置,选择最优的YARN调度器;基于队列利用率,对占用资源最多的Hive

SQL脚本进行并行拆分,最优化队列利用率;对拆分完成的Hive

SQL进行代码改进,进一步提高执行效率;在代码优化完成后若存在数据倾斜问题,则
针对数据倾斜展开治理。
附图说明
[0046]为了更清楚地说明本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于Hive

SQL执行效率的提升方法,其特征是所述的方法具体步骤如下:S1基于当下计算任务的跑数表现选择最优的YARN调度器;S2基于队列利用率对计算任务关键环节任务进行并行拆分;S3优化计算引擎、mapper以及reducer数量配置,优化代码计算逻辑;S4对存在数据倾斜问题的进行倾斜治理。2.根据权利要求1所述的方法,其特征是所述S1基于当下计算任务的跑数表现选择最优的YARN调度器的具体步骤如下:S101基于组织的Hive

SQL计算脚本执行特点选择最优的调取器策略;S102对队列执行时序要求且顺序固定的一组Hive

SQL计算脚本采用FIFO Scheduler调度策略;S112对队列既要执行需求有时序要求且顺序固定的一组Hive

SQL计算脚本,又要应对随机的,低频率的临时查询时采用Capacity Scheduler调度策略;S122对存在大量的、针对不同需求的Hive

SQL计算脚本,且会发生随机的、高频率的临时查询时,采用Fair Scheduler调度策略。3.根据权利要求2所述的方法,其特征是所述S2基于队列利用率对计算任务关键环节任务进行并行拆分的具体步骤如下:S201对数据来源表按业务关键拆分;S202通过where关键字对最大化均分数据量的字段加以限制;S203将该计算脚本拆分为多个并行的计算脚本。4.根据权利要求3所述的方法,其特征是所述S3优化计算引擎、mapper以及reducer数量配置,优化代码计算逻辑的具体步骤如下:S301更改Hive的计算引擎为TEZ;S302利用TEZ计算引擎将计算解析为先执行全部map任务,再执行全部reduce任务。5.根据权利要求4所述的方法,其特征是所述S4对存在数据倾斜问题的进行倾斜治理的具体步骤如下:S401通过执行日志发现倾斜问题,找出倾斜问题发生的key;S402对key所在的代码段基于nvl()函数以及rand()函数进行治理。6.一种用于Hive

SQL执行效率的提升系统,...

【专利技术属性】
技术研发人员:吴锦坤张金波张睿智周庆勇
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1