set mapred.reduce.tasks=-1;
set hive.exec.reducers.max=160;
set hive.auto.convert.join=true;
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=16;
set hive.optimize.skewjoin=true;
set hive.exec.reducers.bytes.per.reducer=100000000;
set mapred.max.split.size=200000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.hadoop.supports.splittable.combineinputformat=true;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
上面优化条件在执行hive的时候有可能躲避错误,导致出现有时候有数据有时候丢数据
暂且理解为优化过了头
使用下面参数,关闭优化条件
set hive.exec.mode.local.auto=false;
set hive.auto.convert.join=false;
set hive.exec.compress.output=false;
最后发现是下面两个参数导致的
set hive.auto.convert.join=true;(测试后与此无关)
set hive.optimize.skewjoin=true;