Hive调优
使用 EXPLAIN
在查询语句前加上 EXPLAN 关键字,然后来查询下查询计划和其他一些信息。这个查询本身是不会执行的。
首先会打印出抽象语法树。它表明Hive 是如何将查询解析成 token(符号) 和 literal(字面值)的,是第一步将查询转化到最终结果的一部分。
使用 EXPLAIN EXTENDED 可以输出更多信息。
限制调整
当开启 LIMIT 是会进行抽样处理,而不是再对全部数据处理了。
Hive有一个配置属性可以开启,当使用LIMIT 语句时,其可以对元数据进行抽样。
<property>
<name>hive.limit.optimize.enable</name>
<value>true</value>
<description>Whether to enable to optimization to try a smaller subset of data for simple LIMIT first.</description>
</property>
一旦属性 hive.limit.optimize.enable
的值设置为 true
,那么还会有两个参数可以控制这个操作,也就是 hive.limit.row.max.size
和 hive.limit.optimize.limit.file
:
<property>
<name>hive.limit.row.max.size</name>
<value>100000</value>
<description>When trying a smaller subset of data for simple LIMIT,how much size we need to guarantee each row to have at least.</description>
</property>
<property>
<name>hive.limit.optimize.limit.file</name>
<value>10</value>
<description>When trying a smaller subset of data for simple LIMIT,maximum number of files we can sample.</des