解决HiveSQL查询出现Java.lang.OutMemoryError.java heap space

使用Hive时,出现了以下问题时:

这个问题有的是没有资源导致的,有时的是因为计数器太多,超出了MapReduce的计算数的最大值。所以这个时候一定要看系统日志:/tmp/hadoop/hive.log

关于日志路径的说明:中间的hadoop是当前系统登录的用户

这篇文章主要解决资源不足的情况:

故知具体错误原因为JVM资源分配不够

接下来可以尝试这几种方法

方法一:调整Yarn资源分配

编辑yarn-site.xml修改yarn的分配资源量

复制代码
vim /opt/ha/hadoop-3.1.3/etc/hadoop/yarn-site.xml

添加如下配置:

XML 复制代码
<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
</property>
<property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>4096</value>
</property>
<property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
</property>
<property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx2048m</value>
</property>

分发到其他服务器,重启yarn

方法二:Hive堆栈资源分配

查看hive-env.sh可以发现默认分配给Hive堆栈的资源是256MB,这个才是最根本的问题

调整资源,设置为4096即可:

相关推荐
白日与明月2 天前
Hive-vscode-snippets
hive·hadoop·vscode
Sirius Wu2 天前
Hive的窗口函数
数据仓库·hive·hadoop
シ風箏2 天前
Hive【安装 01】hive-3.1.2版本安装配置(含 mysql-connector-java-5.1.47.jar 网盘资源)
java·hive·mysql
Sirius Wu3 天前
一文说清楚Hive
数据仓库·hive·hadoop·后端
Sirius Wu3 天前
一文说清楚Hive中常用的聚合函数[collect_list]
hive·hadoop·list
sheep85214 天前
HIVE实战处理(二十四)留存用户数
数据仓库·hive·hadoop
码字的字节4 天前
深入解析Hive SQL转MapReduce的编译原理:从AST抽象语法树到Operator执行树
hive·sql·ast·mapreduce·operator
O执O6 天前
JavaWeb笔记四
java·hive·hadoop·笔记·web
杨荧6 天前
基于大数据的旅游推荐系统 Python+Django+Hive+Vue.js
大数据·前端·vue.js·hive·python·开源·旅游
撰卢7 天前
Filter快速入门 Java web
java·前端·hive·spring boot