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,如需转载请自行联系原作者