HiveSQL调优-最常用的调优方式

发布时间 2023-05-06 16:27:46作者: CodeCheng~

系统和其它层面:让经常where的字段进行分区,合理的多分桶、数据使用压缩、建宽表的时候用列式的orc存储、

开启严格模式:会产生笛卡尔积、order by排序后未加limit查询分区表时未指定列的HiveSQL语句直接执行出错

开启列裁剪和分区裁剪:即只查询要读取的列和分区,避免全表扫描或全列扫描。

HiveSQL语句本身层面:

1. sort by去代替order by:order by需要全局排序,所有的map会进入到一个reduce里面。sort by是多个reduce局部有序。

2. group by来代替count distinct

3. union all时可以开启并发执行

4. 小表在前,大表在后。 小表驱动大表,小表可载入内存

5. 调整Map和Reduce的个数

6. task多,难以避免小文件的任务开启JVM重用