hive優化過頭出問題 ,可以使用一下方式
阿新 • • 發佈:2018-11-05
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;