set mapreduce.job.reduces;
reduce个数,默认-1
join优化:
set hive.auto.convert.join;
是否根据input file size自动开启优化,即mapjoin
set hive.auto.convert.join.noconditionaltask
无条件任务,自动mapjoin,默认true
hive.auto.convert.join.noconditionaltask.size
默认10000000,即10m
SET hive.mapjoin.smalltable.filesize;
默认25000000,输入文件大小小于该值为小表,转为mapjoin
数据倾斜:
join倾斜
set hive.optimize.skewjoin;
倾斜连接优化,默认false
set hive.skewjoin.key;
join操作中,相同key的行数超过该值,则判定为倾斜key,重新开启mr作业,默认100000
set hive.skewjoin.mapjoin.map.tasks;
默认10000
set hive.skewjoin.mapjoin.min.split;
默认33554432,即32m
group by倾斜
SET hive.groupby.skewindata;
默认false,通过随机分区+二次作业解决倾斜
本地模式运行作业
set hive.exec.mode.local.auto=true; //使用local模式,该设置要是:true
set hive.exec.mode.local.auto.input.files.max; //依赖第一个设置,默认是4,输入文件个数 <= max 则以本地模式执行
set hive.exec.mode.local.auto.inputbytes.max=134217728; //依赖第一个设置,默认128m,输入的字节数 <= max 则 以本地模式执行
注意:三个配置必须同时满足才能以本地模式执行