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了.