美文网首页
Hive优化方法

Hive优化方法

作者: 大数据Zone | 来源:发表于2018-10-14 22:53 被阅读48次

①join连接时的优化:当三个或更多的表进行join连接时,如果每个on使用相同的字段连接时只会产生一个MapReduce job。
②join连接时的优化:当多个表进行查询时,从左到右表的大小顺序应该是从小到大。 原因:hive在对每行记录操作时会把其他表先缓存起来,直到扫描最后的表进行计算。

tips: 用户并非总是要将最大的表放置在查询语句最后面,因为Hive提供了一个“标记”机制来显式地告知查询优化器哪张表是大表。
/*+STREAMTABLE(tablename)*/

③在where字句中增加分区过滤器。

④当可以使用

left semi join

语法时不要使用

inner join

前者效率更高。

原因:对于左表中指定的一条记录,一旦在右表中找到匹配的记录,Hive立即停止扫描。

tips: LEFT SEMI JOIN 的限制是, JOIN 子句中右边的表只能在ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。

⑤如果所有表中有一张表足够小,则可置于内存中,Hive可以在map端执行连接过程(map-side JOIN),这是因为Hive可以和内存中的小表进行逐一匹配,从而省略掉常规连接操作所需要的reduce过程。 设置属性即可实现:

set hive.auto.covert.join=true;

用户可以配置希望被优化的小表的大小

set hive.mapjoin.smalltable.size=2500000;

如果需要使用这两个配置可置入$HOME/.hiverc文件中。
Hive对于右外连接和全外连接不支持这个优化。

⑥同一种数据的多种处理:从一个数据源产生的多个数据聚合,无需每次聚合都需要重新扫描一次。 例如:

insert overwrite table student select from employee; insert overwrite table person select from employee;

可以优化成:

from employee insert overwrite table student select insert overwrite table person select

⑦limit调优:limit语句通常是执行整个语句后返回部分结果。

set hive.limit.optimize.enable=true;

⑧开启并发执行。 某个job任务中可能包含众多的阶段,其中某些阶段没有依赖关系可以并发执行,开启并发执行后job任务可以更快的完成。设置属性:

set hive.exec.parallel=true;

⑨hive提供的严格模式,禁止3种情况下的查询。

a:当表为分区表时,where子句后没有分区字段和限制时,不允许执行。

b:当使用order by语句时,必须使用limit字段,因为order by 只会产生一个reduce任务。

c:限制笛卡尔积的查询。

⑩合理的设置map和reduce数量。

11:JVM重用。可在hadoop的mapred-site.xml中设置JVM被重用的次数。

12:使用explain和explain extended学习Hive是如何将查询转化为MapReduce任务的。

参考资料:https://blog.link-lin.cn/

相关文章

  • Hive优化实践1-数据倾斜及join无关的优化

    Hive SQL的各种优化方法基本 都和数据倾斜密切相关。 Hive的优化分为join相关的优化和join无关的优...

  • 坑合集

    Flume flume细节 Hive 数据倾斜Hive优化 Hive分区表新增字段为null的bug及解决方法 S...

  • 2021-01-15

    hive中groupby优化_HiveSQL常用优化方法全面总结[https://blog.csdn.net/we...

  • 数仓--Hive-面试之Hive优化策略

    Hive的优化策略大致分为:配置优化(hive-site.xml和hive-cli执行前配置)、表优化、hive数...

  • Hive优化方法

    ①join连接时的优化:当三个或更多的表进行join连接时,如果每个on使用相同的字段连接时只会产生一个MapRe...

  • HiveSQL优化方法

    Hive/HiveSQL常用优化方法全面总结[https://blog.csdn.net/u013411339/a...

  • Hive优化

    Hive简单优化与定期ETL Hive优化 Hive的执行依赖于底层的MapReduce作业,因此对Hadoop作...

  • Hive优化

    Hive优化 今天的主要内容——Hive优化 Fetch抓取Hive 中对某些情况的查询可以不必使用 MapRed...

  • Hive优化

    Hive数据倾斜优化总结 Hive数据倾斜优化分为配置优化和SQL优化 优先原则: 数据不怕多,避免倾斜。 减少J...

  • Hive 企业使用优化一

    Hive优化之一fetch task。 优化场景, 1、当在hive中执行select * from emp全部查...

网友评论

      本文标题:Hive优化方法

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