执行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>
<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>
|