列裁剪和分区裁剪(逻辑优化器)
hive.optimize.cp列裁剪-
谓词下推(逻辑优化器)
hive.optimize.ppdsort by 代替 order by
gruop by 代替 distinct
gruop by配置
hive.map.aggrmap端预聚合hive.groupby.skewindata倾斜均衡 (两个job 一个job 随机到reduce、后面的job再按key聚合)- join优化
-
多表join时key相同
-
map join特性
空值或无意义值
过滤掉空值
-
MapReduce优化
调整map数
mapper_num = MIN(split_num, MAX(default_num, mapred.map.tasks))大文件多就多- 调整reduce数量
reducer_num = MIN(total_input_size / reducers.bytes.per.reducer, reducers.max)多了小文件多、少了就慢 合并小文件
cpu换磁盘空间
-
JVM重用
mapred.job.reuse.jvm.num.tasks合适的存储格式
parquet、orc 列式存储
