内容纲要
概要描述
本文主要描述使用 beeline 查询报错 Java heap space 的解决方案。
详细说明
有时在使用 beeline 执行 SQL 时会出现这样的报错:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
可能原因
可能的原因主要有以下几种:
-
查询的数据量过大;
-
使用了全表查询,表内数据过多;
-
查询时返回的结果集过大,超过了 beeline 的启动内存(默认 256MB)。
解决方案
可以尝试以下操作来缓解该问题:
-
定时手动
echo /dev/null > /xxx/.beeline/history
清理服务器各登录账号下的history文件,如 root 用户的是/root/.beeline/history
这个文件; -
可以在执行 beeline 之前,设置一下环境变量, 如
export HADOOP_HEAPSIZE=16384
可以将 beeline 的启动内存增大到16GB。