hive优化之参数调优
1、hive参数优化之默认启用本地模式
启动hive本地模式参数,一般建议将其设置为true,即时刻启用:
hive (chavin)> set hive.exec.mode.local.auto;
hive.exec.mode.local.auto=false
2、设置hive执行模式
hive (default)> set hive.mapred.mode;
hive.mapred.mode=nonstrict
参数hive.mapred.mode控制着hive的执行模式,如果设置为strict模式,则hive作业禁止3种类型查询:
1)分区表没有启用分区过滤字段。
2)order by没有指定limit限制
3)笛卡尔积
3、限制调整
查询中使用limit限制返回数据行数,但是实际mapreduce任务很多情况已经跑完了整个任务。可以通过配置参数对这种情况进行控制:
设置hive.limit.optimize.enable=true;将针对查询对元数据进行抽样。
同时可能还需要设置以下两个参数:
set hive.limit.row.max.size=100000;
set hive.limit.optimize.limit.file=10;
这样设置不好的一点是有些数据可能永远也访问不到。
4、jvm重用相关设置
jvm重用是hadoop调优参数的内容,其对hive的性能影响是非常大的,特别是对于针对很多小文件的场景或task特别多的场景,这类场景任务执行的时间都很短。hadoop默认使用派生的jvm执行mapreduce任务,对于jvm的启动时很大的开销,特别针对于task任务比较多的场景。jvm重用可以使jvm实例在同一个job中运行n次,n的值在hadoop的mapred-site.xml文件进行配置:
<property>
&