HIVE常用的调优经验
1、开启本地模式
set hive.exec.mode.local.auto=true;
2、使用MAPJION
set hive.auto.convert.join=false;
使用MAPJION的主要作用是有效的减少一个SQL任务中的Stage层数。同一个SQL任务下,越少的Stage层代表越快的效率。
3、PARALLEL特性
set hive.exec.parallel=true;
hive.exec.parallel.thread.number
Default Value: 8
PARALLEL特性可以是的某些任务中的stage子任务可以一并行执行模式同时执行,相对于一直串行执行stage任务来说有效的提升资源利用率。
PARALLEL特性主要针对如下几种情况:
多个数据源表关联
插入多个目标表
UNION ALL
4、内部表
经验总结如下(不同数据文件有一定误差):
ORC比PARQUET的压缩率高大约10~20%。
(TEXT:10G -> ORC:2~3G or PARQUET:3~4G)
PARQUET比ORC的执行效率高大约10~20%。
Hive中内部表推荐使用存储格式 ORC->PARQUET->RCFILE-> TEXTFILE
如果使用Spark引擎使用较多,内部表定义推荐使用存储格式 PARQUET –> ORC ->RCFILE-> TEXTFILE
建表语句:PARTITIONED BY (MONTH_PART STRING comment ‘