1、开启本地模式,这样可以缩短小任务和执行时间
2、使用explain关键字来分析sql语句,然后根据执行结果来对SQL语句进行动态的调整,其中explain只有对hql也就是Hive SQL的解释,而Explain extened 不仅可以对hql语句进行解释,还有抽象表达式树的生成
3、修改hive中的fetch操作为more,减少不必要的mr操作(比如查询某字段,limit,*)
4、开启sql的严格模式这样的话可以防止写的很烂的sql语句影响了集群
5、开启JVM的重新使用,这样的话JVM就可以执行多个Tesk任务,效率就会提升
6、分区、分桶以及压缩
7、根据computeSliteSize(Math.max(minsize,Math.min(maxsize,blocksize)))=blocksize=128M的公式,调整Max的最大值来设置合理的map数量,开启小文件的合并,以及设置相对合理的reucer数
8、因为hive每次执行只会执行一个阶段,而且阶段之间都不是串行的,所以可以通过设置并行执行,这样hive可以同时执行多个stage阶段,提高了效率
9、CBO优化也就是成本优化器,开启之后会将hive执行前的执行计划自动优化,让hive的效率更高,且该功能默认开启
10、谓词下推:简单来说就是将where条件提前给执行了,然后再关联表,这样数据量就变小了
先更新这十条,其他的后续会再补上