一、解決資料傾斜
1. 過濾掉null部分
key值存在大量空欄位,會hash到同一reduce,造成reduce長尾,將null 值過濾掉2. hive join傾斜:設定join skew引數解決舉例: select user_id from logs where statdate = '20170815' where user_id is not null;
set hive.optimize.skewjoin = true;3. hive group by distinct傾斜:設定skew引數set hive.skewjoin.key = skew_key_threshold (default = 100000);
set hive.groupby.skewindata=true;二、合理設定map和reduce的個數
1. 合理設定reduce的個數
set mapred.reduce.tasks = 15;2. jvm重用
set mapred.job.reuse.jvm.num.tasks = 10; (重用次數)3. job間並行執行節約jvm 啟動的時間
set hive.exec.parallel=true; 預設並行度為 8,可以通過 hive.exec.parallel.thread.number引數調整在有些情況下job之間是可以並行的,典型的就是子查詢。
當需要執行多個子查詢union all或者join操作的時候,job間並行就可以使用了。
例:如下可以並行的場景
select * from( select count(*) from logs
where log_date = 20170801 and item_id = 1
union all
select count(*) from logs
where log_date = 20170802 and item_id = 2
union all
select count(*) from logs
where log_date = 20170803 and item_id = 3
)t;
hive sql優化整理
hive sql優化方法引數一些整理,方便快速查詢使用 1.map數量與reduce數量的控制 輸入檔案大小指實際檔案大小,與檔案格式textfile,orc等無關,壓縮的檔案格式會小很多設定引數要適當調整 map數量控制 set hive.input.format org.apache.hadoo...
hivesql 效率優化
1.group by 資料傾斜問題 hive是根據group by 的key進行資料分發的,某個key相同的資料太多的會被分發到乙個reducer上,key的資料分布不均勻會導致大量資料被shuffle到某個或者某些reducer上,出現嚴重的資料傾斜,使得資料計算變慢 配置任務引數 set hiv...
HIVESQL優化方法
這是我2年前總結的東西,當時是用華為paas平台的大資料集群的時候,因為我們公司分配的資源較少,自己總結的部分優化方法,如有不足,望大家指正 1 set hive.map.aggr true false 當使用聚合函式時會在ma階段進行聚合 效率更高同時消耗更多資源 2 當join表的時候有乙個大表...