性能优化
作业调优
严格模式
Hive在执行SQL命令时,可以设置严格模式,防止用户执行一些对性能影响很大的查询。
set hive.mapred.mode=strict;
在Hive 2.x之前默认为nonstrict,之后默认是strict。
严格模式禁止对分区表进行全表扫描,查询时在where语句中必须包含分区字段限制范围。对使用了Order By的查询,必须使用limit语句限制数据量,防止单任务运行时间过长。
严格模式下,会限制笛卡尔积的查询。
在企业,可以进行灵活设置,但严格模式的开启,可能会导致某些SQL语句无法执行。
基本属性
为作业配置作业名,便于查找:
set mapred.job.name=my_job_{DATE};
对于紧急作业,可以提高作业优先级,以增加处理时的响应速度:
--5个优先级可选:VERY_HIGH,HIGH,NORMAL,LOW,VERY_LO