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

一、Introduction

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

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

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

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

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

二、Method

2.1 方法一:本地模式

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

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

2.2 方法二:Yarn资源分配

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

vim hadoop-3.1.3/etc/hadoop/yarn-site.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>-Xmx1024m</value>
        </property>

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

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

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

 将资源调整到2048即可

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

猜你喜欢

转载自blog.csdn.net/ccaoshangfei/article/details/127870610