1.使用explain 和 explain extended
expain select * from dual;
expain extended select * from dual;
2.限制调整 limit
在使用Limit 时只输出了指定行数,但在很多情况下Limit语句还是会执行整个语句,再返回部分结果,可以设置抽样,避免这种情况。
<property>
<name>hive.limit.optimize.enable</name>
<value>true</value>
</property>
<property>
<name>hive.limit.row.max.size</name>
<value>10000</value>
</property>
<property>
<name>hive.limit.row.min.size</name>
<value>10</value>
</property>
缺点
一些数据永远不会被处理,就是有后续处理的,因为前一阶段把一些数据排除在外了。
例如: 有reduce阶段,join和group by,还有大部分聚合函数。
3.本地模式
永久配置:
## hive-site.xml
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
</property>
启动时:
$ hive hive.exec.mode.local.auto=true
执行过程临时启用本地模式
长呀,不想打,多几个 set 用的不多