前言
在Hive优化方面,要做到性能最优,那就是得定制优化,针对不同的sql脚本设置不同的参数,配置不同的map和reduce数。保证局部性能最优,结果才会是效率最高。
那么在定制优化方面使用session级别的配置就是对症下药。所有的设置的参数只在一次Hive的cli命令起作用,关闭窗口或者退出命令行后整个配置参数全部失效,不会对其他脚本的运行环境造成影响。
配置清单:
- 1 创建session级别临时表,会话关闭临时表自动销毁
- 2 设置程序运行的队列环境
- 3 设置sql语句查询结果是否显示列名
- 4 开启动态分区的设置
- 5 动态设置分区达到默认数量上限
- 6 设置reduce数量
- 7 设置map数量
- 8 使用with cube 、grouping set的优化配置
- 9 是否自动转为mapjoin
- 10 在group by 阶段出现数据倾斜
- 11 hadoop作业JVM堆大小设置
- 12 控制是否启用查询执行的向量模式
详细讲解:
1 创建session级别临时表,会话关闭临时表自动销毁
CREATE TEMPORARY TABLE tmp
(
a string
,b string
,c string
) ;
2 设置程序运行的队列环境
set mapred.job.queue.name=ne;
3 设置sql语句查询结果是否显示列名
set hive.cli.print.header=true;
select * from tmp2_jc_test limit 10;
4 开启动态分区的设置
set hi