记录hive sql报错,return code1和return code2解决方法

执行hive sql语句的时候非常容易出现return code 1、return code 2、return code 3的情况,我就遇到了很多次,code3在某次意外中得以解决 但是引发了code2 和code1, 有些error莫名其妙的出现又莫名其妙的消失,可它还会带来更多的error。

⚠️报错:
[2021-10-19 19:45:38] [08S01][2] Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

在这里插入图片描述

✅解决方法:
这个真的困扰了我好久啊啊啊啊啊!!! 跟着改了n多配置无用。
就在1019日大概晚上八点 突然看到一篇文章醍醐灌顶的感觉,就是说hive sql return code 2 是一种常见的官方报错方式,每个人的错误可能都不一样,但是一定要去yarn上查看log
具体请看这里== 》

于是我去查看了yarn job diagnostics,很明显内存超出了!可是我之前已经改到虚拟内存最大了,没办法只好改大了虚拟机内存,再次调整yarn容器允许分配的最大最小内存和yarn容器允许管理的物理内存大小!
请添加图片描述
yarn-site.xml:
在这里插入图片描述
同时记得修改mapred-site.xml里的
在这里插入图片描述

⚠️报错:
[2021-10-19 22:06:07] [08S01][2] Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
在这里插入图片描述
✅解决方法:
查看yarn 进度显示succeed?!但是这里又报错,点进去log里看也没有看到任何报错就很奇怪 之前也遇到过很很多次这个错误一直没有得到解释,知道刷到下面这条⬇️
说是堆内存溢出导致的==>
由于我已经配置了yarn.scheduler.maximum-allocation-mb 和 yarn.scheduler.minimum-allocation-mb,故如图配置以下两个文件得以解决!!!
在这里插入图片描述

最后,贴出我yarn-site.xml的所有配置:

<configuration>
        <!--指定MR走shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!--指定ResourceManager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop103</value>
        </property>

        <!--开启日志聚集功能-->
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>

        <!--设置日志聚集服务器地址-->
        <property>
                <name>yarn.log.server.url</name>
                <value>http://hadoop102:19888/jobhistory/logs</value>
        </property>

        <!--设置日志保留时间为7天-->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>

        <!--yarn容器允许分配的最大最小内存-->
        <property>
                <name>yarn.scheduler.minimum-allocation-mb</name>
                <value>512</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>4096</value>
        </property>

        <!--yarn容器允许管理的物理内存大小-->
        <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>4096</value>
        </property>

        <!--关闭yarn对虚拟内存的限制检查-->
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false></value>
        </property>

        # 打开hadoop中yarn-site.xml文件,添加
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</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>

</configuration>

mapred-site.xml配置:

<configuration>
        <!--指定MapReduce程序运行在Yarn上-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

        <!--历史服务器端地址-->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop102:10020</value>
        </property>

        <!--历史服务器web端地址-->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop102:19888</value>
        </property>


        <!--运行hdfs自带wordcount功能出现错误-->
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.2.2</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.2.2</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.2.2</value>
        </property>

        <property>
                <name>yarn.nodemanager.resource.memory-mb</name>
                <value>4096</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>4096</value>
       </property>
</configuration>

版权声明:本文为FunnyPrince_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。