Hive更新完後ETL開發找到我說有的Job一直failed.看了一下在MAP階段進行MAPJOIN處理時就OOM了,但是開發說沒有加MAPJOIN HINT,其實在0.11後hive.auto.convert.join的預設值變為true也就是會自動去做;
并且在0.11加入了一個新的參數hive.ignore.mapjoin.hint來控制是否忽略MAPJOINHINT(HIVE-4042),預設也是true,即使加了預設也會被忽略掉的.
不過對于MAPJOIN對于記憶體的消耗确實非常高,基本要3X-4X資料量(具體見HIVE-6430),其中HIVE-6418,HIVE-6429都有一定的修複(分别針對MAPJOINKEY,MAPJOINROWCONTAINER),不過是在0.13了.
本文轉自MIKE老畢 51CTO部落格,原文連結:http://blog.51cto.com/boylook/1366330,如需轉載請自行聯系原作者