1.异常
在hive中两张表进行join操作时有时会出现如下错误:
Total MapReduce jobs = 4
2014-10-22 05:45:06 Starting to launch local task to process map join; maximum memory = 1065484288
2014-10-22 05:45:42 Processing rows: 200000 Hashtable size: 199999 Memory usage: 82761296 percentage: 0.078
出现错误的原因是 任务在进行join操作时转换mapjoin将小表放进内存导致内存溢出。
2.解决办法:
解决办法由两种,一个是将自动mapjoin 转换关闭,另外一个是将内存调大:
2.1.关闭自动mapjoin 转换
修改配置文件 关闭mapjoin
vim hive-site.xml
hive.auto.convert.join
false
2.2.将内存增大
hive.mapjoin.smalltable.filesize 默认值是25MB
修改内存大小
set mapreduce.map.memory.mb=2049;
set mapreduce.reduce.memory.mb=20495;
set hive.auto.convert.join=true;
本文介绍了解决Hive中进行join操作时出现的内存溢出问题,提供了关闭自动mapjoin转换及调整内存大小两种解决方案。

4426

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



