【注意】所有的配置项写到xml文件,需要更换格式。
1、使用explain、explain extended
explain select count(car_brand) from car; --结果见下图
explain extended select count(car_brand) from car;
使用explain可以看到Hive是怎么转换成MapReduce任务的。想要更详细的信息可以用explain extended。
2、限制调整
使用limit语句有时候可以避免整个查询语句(有时候并不能)。Hive有个属性可以设置开启时,使用limit,可以对源数据进行抽样,还可以设置范围。缺点就是,可能导致有一部分数据永远不会被处理到,join、group by和聚合函数的返回结果可能不一样。
# 可在xml文件中设置
set hive.limit.optimze.enable=true;
set hive.limit.row.max.size=100000;
set hive.limit.optimize.limit.file=10;
3、JOIN优化
就是前面提过的map-site JOIN,多表关键,最右边的表数据量最大。如果表的数据量足够小,是可以载入内存,减少reduce阶段
4、本地模式
如果查询的数据量不大ÿ