Hive调优的目标、原则

作者: 老老戟 | 来源:发表于2019-01-20 14:28 被阅读0次
精选.png

1.1. 调优目标

Hive调优的目标是在不影响其他业务正常运行的前提下最大限度利用集群的物理资源,如CPU、内存、磁盘IO,使其某一项达到瓶颈。如下CPU接近瓶颈:

图片.png

1.2. 调优原则

(1)保证map扫描的数据量尽量少

减少map端扫描数量,需要控制待处理的表文件或中间文件的数据量尽量少。

优化的方式如:Hive表文件使用高效的文件格式、Hive表文件使用合适的文件压缩格式、中间文件使用合适的文件压缩格式、利用列裁剪、利用分区裁剪、使用分桶

(2)保证map传送给reduce的数据量尽量小

控制map传送给reduce的数据量,是指JOIN避免笛卡尔积、启动谓词下推、开启map端聚合功能

(3)保证map和reduce处理的数据量尽量均衡

保证map处理的数据量尽量均衡,是指使用Hive合并输入格式、必要时对小文件进行合并

保证reduce处理的数据量尽量均衡,是指解决数据倾斜问题。包括解决group by造成的数据倾斜、解决join造成的数据倾斜

(4)合理调整map和reduce占用的计算资源

合理调整map和reduce占用的计算资源,是指**通过参数设置合理调整map和reduce的内存及虚拟核数**。

根据集群总体资源情况,以及分配给当前租户的资源情况,在不影响其他业务正常运行的条件下,最大限度地利用可使用的计算资源。

(5)合理调整map和reduce的数量

合理调整map数,是指通过设置每个map处理数据量的最大和最小值来合理控制map的数量

合理调整reduce数,是指通过直接设置reduce数量或通过设置每个reduce的处理数据量来合理控制reduce的数量

(6)重用计算结果

重用计算结果,是指**将重复的子查询结果保存到中间表**,供其他查询使用,减少重复计算,节省计算资源。

(7)使用稳定成熟的Hive优化特性

使用稳定成熟的Hive优化特性,包括:**相关性优化器(****Correlation Optimizer****),基于代价的优化(****Cost-based optimization****),向量化查询引擎(****Vectorized Query Execution****),****Join****相关优化(Map Join、SMB Join),Multiple Insert特性**,**TABLESAMPLE****抽样查询**、**Limit优化**、**局部排序(SORT BY、****DISTRIBUTE BY****)。**

(8)使用高效HQL或改用MR

使用高效HQL,包括**慎用低性能的UDF和SerDe**、**优化count(distinct)**。

对于使用HQL比较冗余同时性能低下的场景,在充分理解业务需求后,改用MR效率更高。

精选.png

相关文章

  • Hive调优的目标、原则

    1.1. 调优目标 Hive调优的目标是在不影响其他业务正常运行的前提下,最大限度利用集群的物理资源,如CPU、内...

  • Hive ETL 优化(参数篇)

    Hive 调优-参数篇 <** 工作中常用的 hive 参数调优,整理如下。 原则: 最少数据 最少字段 最少Jo...

  • Hive 调优总结,让 Hive 调优想法不再碎片化

    通过阅读比较多的 Hive 调优材料,并根据自己的实践,总结 Hive 调优如下,让 Hive 调优想法不再凌乱、...

  • hive调优实战系列文章-hive调优和问题排查思路

    本文将介绍Hive调优的整体过程,以及本人对Hive调优过程的一些思考,包括Hive调优的一般步骤,和调优方法。 ...

  • Hive调优参数篇

    工作中常用的 hive 参数调优,整理如下。原则:• 最少数据• 最少字段• 最少Job数• 最少读取次数• 避免...

  • hive调优

    1,参数调优 hive.map.aggr = true hive.groupby.skewindata =tr...

  • Hive调优

    1.使用explain 和 explain extended 2.限制调整 limit 在使用Limit 时只输...

  • Hive 调优

    列出调优参数列表 具体可参考https://www.cnblogs.com/xd502djj/p/3799432....

  • Hive调优

    Fetch抓取(Hive可以避免进行MapReduce)Hive中对某些情况的查询可以不必使用MapReduce计...

  • HIVE 调优

    1. Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SE...

网友评论

    本文标题:Hive调优的目标、原则

    本文链接:https://www.haomeiwen.com/subject/rguxjqtx.html