1.場景:
hive多表關聯使用join關聯時,sql語句不執行。
如下sql:
select b.phoneno,b.statuscode,b.strategyid from whphone a left join rm_workerorder_info b on a.phoneno=b.phoneno where a.time解決辦法:
hive的join機制和具體的表的情況有關
其中hive的配置項中中有:hive.auto.convert.join預設引數是true
需要在執行sql前先把該配置項設定為false;set hive.auto.convert.join=false;
2.場景:
當關聯的表資料特別大時,sql執行會中斷或者徹底執行不了
優化方案:
sql優化就不在這裡多說了,只說一下有關hive配置項的優化方案
hive.mapjoin.localtask.max.memory.usage:mapjoin本地任務執行時hash表容納key/value的最大量,超過這個值的話本地任務會自動退出,預設是0.9;
但是本地如果執行不了sql時,可以嘗試把這個配置項的值修改。
我修改的方式是:set hive.mapjoin.localtask.max.memory.usage=0.99;
通過修改這個配置項,我的sql成功的跑起來了。
HIVE優化 解決方案
1.開啟並行引數 set hive.exec.parallel true set hive.exec.parallel.thread.number 16 同乙個sql允許最大並行度,預設為8 2.負載均衡引數 只針對groupby操作的傾斜 set hive.groupby.skewindata t...
hive整體架構優化解決策略
高階大資料架構師!hive可以從幾個方面進行優化,從系統角度看 整體架構 mr階段 job以及平台都可以進行優化。從使用者角度看 了解sql執行過程以及業務資料特點,調整sql語句進行優化。一 整體架構優化現在hive的整體框架如下,計算引擎不僅僅支援map reduce,並且還支援tez spar...
關於HIVE的SELECT count 優化
印象最深的是hive將表的大小作為了元資料儲存在了關聯式資料庫中。譬如在老版本中執行如下的語句 from base insert overwrite table user select 你會發現日誌的末尾會有 999 rowd loaded into table user 的字樣 代表有999條目記...