Hive Error : Java heap space 解決方案


 Java heap space問題一般解決方案:

設置 set io.sort.mb=10; 排序所使用的內存數量,默認值是100M,和mapred.child.java.opts相對應,opts默認:-Xmx200m,則mb不能超過200M,否則會OOM。

設置 set hive.map.aggr=true; 是否在 Map 端進行聚合,默認為True,會在map端進行部分數據端聚合操作。

(可選)hive.groupby.mapaggr.checkinterval =100000; Map端進行聚合操作的數據條目,根據情況選擇是否設置。

設置 set hive.groupby.skewindata=true; 設置true后當數據出現傾斜時,Hive會自動進行負載均衡。

當hive.groupby.skewindata選項設定為true時,查詢計划會有兩個MR Job。第一個MR Job 中,Map的輸出結果集合會隨機分布到Reduce 中,每個 Reduce 做部分聚合操作,並輸出結果,這樣處理的結果是相同的 Group By Key有可能被分發到不同的 Reduce 中,從而達到負載均衡的目的;第二個 MR Job 再根據預處理的數據結果按照 GroupByKey 分布到 Reduce 中,該過程可以保證相同的 GroupByKey 被分布給同一個Reduce,完成最終的聚合操作。

 

來源: https://zlver.com 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM