1. 问题描述
在hive中两张表进行join操作时有时会出现如下错误:
1 | Total MapReduce jobs = 4 |
出现错误的原因是 任务在进行join操作时转换mapjoin将小表放进内存导致内存溢出。
2. 解决办法:
解决办法由两种,一个是将自动mapjoin 转换关闭,另外一个是将内存调大:
2.1. 关闭自动mapjoin 转换
修改配置文件 关闭mapjoin
vim hive-site.xml
1 |
|
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;