性能优化
作业调优
严格模式
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数,而是将没有严格先后依赖