各种参数调优
搜集各种参数,以备不时之需
在实际使用Hive或者Spark的时候,肯定会涉及参数的调优,主要目的是提升资源的使用率,提升任务的性能,以最少的资源最快的完成任务的运行,有时候也是为了解决一些直接的报错,总之,不管用过没用过的都记录一下,方便以后查阅。
##Hive
1.mapred.reduce.tasks
默认:1;
所提交 Job 的 reduer 的个数,使用 Hadoop Client 的配置。
2.hive.mapred.mode
默认:'nonstrict';
Map/Redure 模式,如果设置为 strict,将禁止3种类型的查询:
a.分区表的where筛选条件必须含有分区字段;
b.对使用了order by语句的查询,必须使用limit语句
(order by语句为执行排序会将所有的结果集数据分发到同一个reducer中进行处理,
增加limit语句可以防止reducer额外执行很长时间)
c.限制笛卡儿积的查询,就是有where语句,而没有on语句。
3.hive.merge.mapfiles
默认:true;
在Map-only的任务结束时合并小文件。
4.hive.merge.mapredfiles
默认:false
是否在Map-Reduce的任务结束时合并小文件。
5.hive.exec.parallel
默认:false
是否开启 map/reduce job的并发提交。
6.hive.groupby.skewindata
默认:false
决定 group by 操作是否支持倾斜的数据
参考:https://www.cnblogs.com/binguo2008/p/7487782.html