Hive 优化
核心思想:把Hive SQL 当做Mapreduce程序去优化
以下SQL不会转为Mapreduce来执行
select仅查询本表字段
where仅对本表字段做条件过滤
select 和 where 是不会转为mr来执行
Explain 显示执行计划
EXPLAIN [EXTENDED] query
Hive运行方式:
本地模式 将数据抓取到本地 计算
集群模式 计算向数据移动 主要耗费时间是 提交任务 和 yarn 资源管理
本地模式
开启本地模式:
set hive.exec.mode.local.auto=true; 测试可以用
注意:
hive.exec.mode.local.auto.inputbytes.max默认值为128M
表示加载文件的最大值,若大于该配置仍会以集群方式来运行!
并行计算 hive默认是没有开启的
通过设置以下参数开启并行模式:
set hive.exec.parallel=true;
注意:hive.exec.parallel.thread.number
(一次SQL计算中允许并行执行的job个数的最大值)
注意: sql 任务之间 是不能互相有影响的才能使用并行计算 计算机压力也会压力大一点
严格模式 一般会打开
通过设置以下参数开启严格模式:
—防止用户误操作
set hive.mapred.mode=strict;
(默认为:nonstrict非严格模式)
查询限制:
1、对于分区表,必须添加where对于分区字段的条件过滤; 优化查询
2、order