【Big Data】解决Hive查询出现Java.lang.OutMemoryError.java heap space

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 解决出现Java.lang.OutMemoryError.java heap space和FAILED:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

一、Introduction

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

image.gif编辑

错误的原因是资源分配不够,但是错误的原因有很多,需要去查看日志文件观察具体的错误。

日志文件位置在 /tmp/root/hive.log

image.gif编辑

由此我们知道具体的错误原因是JVM资源分配不够

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

二、Method

2.1 方法一:本地模式

在执行Hive之前,将Hive设置为本地运行模式

set hive.exec.mode.local.auto=true;

image.gif

2.2 方法二:Yarn资源分配

进入yarn-site.xml修改yarn的分配资源量

vim hadoop-3.1.3/etc/hadoop/yarn-site.xml

image.gif

<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>-Xmx1024m</value>
        </property>

image.gif

2.3 方法三:Hive堆栈资源分配

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

vim apache-hive-3.1.3-bin/conf/hive-env.sh

image.gif

image.gif编辑

将资源调整到2048即可

image.gif编辑

作者在尝试到了第三种方法问题就解决了,如果还有其他方法的欢迎在评论区进行探讨交流

目录
相关文章
|
3天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过MongoDB Atlas Data Lake或Apache Drill,可以在Java中使用SQL语法查询MongoDB数据。这两种方法都需要适当的配置和依赖库的支持。希望本文提供的示例和说明能够帮助开发者实现这一目标。
33 17
|
5天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
52 6
|
30天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
89 9
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
47 8
|
2月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
3月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
338 6
|
3月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
68 4
|
3月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
57 2
|
3月前
|
缓存 Java 数据处理
java查询大量数据优化
通过结合的高性能云服务,如其提供的弹性计算资源与全球加速网络,可以进一步增强这些优化策略的效果,确保数据处理环节更加迅速、可靠。蓝易云不仅提供稳定的基础架构,还拥有强大的安全防护和灵活的服务选项,是优化大型数据处理项目不可或缺的合作伙伴。
58 0
|
4月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
45 1