近日,在项目中有一段sql执行总是报OutOfMemory

原因是sql中含有大表的group by操作,这导致了数据在map端进行了聚合,超过hash map的大小;
可通过以下参数,关闭map端的聚合,即可正常运行sql
set hive.map.aggr=false;
也可参考下面的文章,通过设置hive.map.aggr.hash.percentmemory的大小来达到这一目的
http://dev.bizo.com/2013/02/map-side-aggregations-in-apache-hive.html
https://developer.aliyun.com/article/238692
优化Hive Map Aggregation内存使用:解决大表GROUP BY问题
本文介绍了解决Apache Hive中因大表group by操作导致内存溢出的问题,提供set hive.map.aggr=false和调整hash.percentmemory参数的方法,并链接相关文章供读者参考。
573

被折叠的 条评论
为什么被折叠?



