Hive性能优化

2021-09-10 11:15:16 浏览数 (1)

性能优化

作业调优

严格模式

Hive在执行SQL命令时,可以设置严格模式,防止用户执行一些对性能影响很大的查询。

代码语言:javascript复制
set hive.mapred.mode=strict;

在Hive 2.x之前默认为nonstrict,之后默认是strict。

严格模式禁止对分区表进行全表扫描,查询时在where语句中必须包含分区字段限制范围。对使用了Order By的查询,必须使用limit语句限制数据量,防止单任务运行时间过长。

严格模式下,会限制笛卡尔积的查询。

在企业,可以进行灵活设置,但严格模式的开启,可能会导致某些SQL语句无法执行。

基本属性

为作业配置作业名,便于查找:

代码语言:javascript复制
set mapred.job.name=my_job_{DATE};

对于紧急作业,可以提高作业优先级,以增加处理时的响应速度:

代码语言:javascript复制
--5个优先级可选:VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW
set mapred.job.priority=VERY_HIGH;

并发控制

为作业设置并行处理,对于非严格依赖的任务,进行并发运算。并行处理开启后,并不会增加Map数、Reduce数,而是将没有严格先后依赖

0 人点赞