hive表插入数据的时候,插入数据失败报错FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.

往hive中的表插入数据的时候,不能直接运行成功,报一下错误

错误原因:
第一种,namenode内存空间不够
原因:JVM剩余内存空间不够新job运行所致

错误提示

0: jdbc:hive2://hadoop101:10000> insert into table student values(1002,"zss");
INFO  : Compiling command(queryId=root_20210909172055_08738d9c-4ded-4067-a2ac-6a64572ad49b): insert into table student values(1002,"zss")
INFO  : Concurrency mode is disabled, not creating a lock manager
INFO  : Semantic Analysis Completed (retrial = false)
INFO  : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:col1, type:int, comment:null), FieldSchema(name:col2, type:string, comment:null)], properties:null)
INFO  : Completed compiling command(queryId=root_20210909172055_08738d9c-4ded-4067-a2ac-6a64572ad49b); Time taken: 0.425 seconds
INFO  : Concurrency mode is disabled, not creating a lock manager
INFO  : Executing command(queryId=root_20210909172055_08738d9c-4ded-4067-a2ac-6a64572ad49b): insert into table student values(1002,"zss")
WARN  : Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
INFO  : Query ID = root_20210909172055_08738d9c-4ded-4067-a2ac-6a64572ad49b
INFO  : Total jobs = 3
INFO  : Launching Job 1 out of 3
INFO  : Starting task [Stage-1:MAPRED] in serial mode
INFO  : Number of reduce tasks determined at compile time: 1
INFO  : In order to change the average load for a reducer (in bytes):
INFO  :   set hive.exec.reducers.bytes.per.reducer=<number>
INFO  : In order to limit the maximum number of reducers:
INFO  :   set hive.exec.reducers.max=<number>
INFO  : In order to set a constant number of reducers:
INFO  :   set mapreduce.job.reduces=<number>
INFO  : number of splits:1
INFO  : Submitting tokens for job: job_1631178391888_0002
INFO  : Executing with tokens: []
INFO  : The url to track the job: http://hadoop101:8088/proxy/application_1631178391888_0002/
INFO  : Starting Job = job_1631178391888_0002, Tracking URL = http://hadoop101:8088/proxy/application_1631178391888_0002/
INFO  : Kill Command = /opt/bagdata/hadoop-3.1.3/bin/mapred job  -kill job_1631178391888_0002
INFO  : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
INFO  : 2021-09-09 17:21:13,094 Stage-1 map = 0%,  reduce = 0%
INFO  : 2021-09-09 17:21:53,093 Stage-1 map = 100%,  reduce = 100%
ERROR : Ended Job = job_1631178391888_0002 with errors
ERROR : FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
INFO  : MapReduce Jobs Launched: 
INFO  : Stage-Stage-1: Map: 1  Reduce: 1   HDFS Read: 0 HDFS Write: 0 FAIL
INFO  : Total MapReduce CPU Time Spent: 0 msec
INFO  : Completed executing command(queryId=root_20210909172055_08738d9c-4ded-4067-a2ac-6a64572ad49b); Time taken: 59.838 seconds
INFO  : Concurrency mode is disabled, not creating a lock manager
Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask (state=08S01,code=2

解决办法1:

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

错误原因
第二种,yarn资源不足
原因:
该错误是YARN的虚拟内存计算方式导致,上例中用户程序申请的内存为1Gb,YARN根据此值乘以一个比例(默认为2.1)得出申请的虚拟内存的值,当YARN计算的用户程序所需虚拟内存值大于计算出来的值时,就会报出以上错误。调节比例值可以解决该问题。具体参数为:yarn-site.xml中的yarn.nodemanager.vmem-pmem-ratio

解决方法:
调整hadoop配置文件yarn-site.xml中值:

<property>
   <name>yarn.scheduler.minimum-allocation-mb</name>
   <value>2048</value>
   <description>default value is 1024</description>
</property>

增加yarn.scheduler.minimum-allocation-mb 数量,从缺省1024改为2048;上述运行问题即刻得到解决

### 回答1: 这个错误提示是Spark SQLHive上执行时出现的错误,错误代码为3,可能是由于Hadoop执行时出现了问题导致的。建议检查Hadoop的配置和运行状态,以及Spark SQLHive的版本兼容性等问题。 ### 回答2: 当在Spark SQL on Hive中遇到"failed: execution error, return code 3 from org.apache.hadoop..ql.exec…. "的错误时,可能有几个原因导致此错误。 首先,这个错误通常与Hive的执行器有关。Hive的执行器负责将Hive查询转换为底层的MapReduce任务或Tez任务来执行查询。如果执行器遇到问题,可能会导致此错误。可以尝试检查Hive配置以确保执行器配置正确,并重新启动Hive服务。 另外,此错误也可能是由于输入输出路径的问题导致的。当在Hive中执行查询时,需要指定输入和输出路径。如果路径无效或权限不足,可能会导致此错误。可以确保输入输出路径正确,并且具有正确的权限。 还有一种可能性是由于查询本身或查询配置的问题导致。查询可能包含不受支持的语法或语义。可以尝试使用不同的查询进行测试,以确定是否只有特定的查询触发此错误。还可以检查Hive配置以确保所有必需的参数正确设置,并与Hive版本兼容。 最后,此错误可能由于集群的其他问题,如网络问题或资源不足引起。可以尝试重新启动集群并检查集群的健康状态。 总的来说,"failed: execution error, return code 3 from org.apache.hadoop..ql.exec…."的错误可能由于Hive执行器、路径问题、查询问题或集群问题导致。可以通过检查Hive配置、查询和集群状态,逐步排除这些可能的原因,以解决此错误。 ### 回答3: 当Spark SQL运行在Hive上时,报错"failed: execution error, return code 3 from org.apache.hadoop.hive.ql.exec"通常是由于Hive执行任务时发生了错误。 这个错误可能是由于以下几个原因导致的: 1. 数据或分区不存在:如果你的SQL查询中引用了不存在的或分区,那么就会出现这个错误。请确保和分区存在并正确地命名。 2. 文件路径错误:如果你的SQL查询中引用了不存在的文件路径,那么也会导致这个错误。请检查文件路径,并确保文件可用。 3. 内存不足:当Hive执行任务时,可能会因为内存不足而导致错误。可以尝试增加内存分配给Hive,或者优化查询以减少内存消耗。 4. 数据类型不匹配:如果你的SQL查询中使用了不匹配的数据类型,也会导致这个错误。请确保查询中使用数据类型与定义的数据类型一致。 5. 数据分区冲突:如果你的是以分区方式存储的,并且查询条件与分区键不匹配,那么会出现这个错误。请检查查询条件,并确保与分区键匹配。 解决这个错误的方法包括: 1. 确保和分区存在,文件路径正确,数据类型匹配,分区键匹配等。 2. 增加Hive的内存分配量。 3. 优化查询,减少内存消耗。 4. 检查Hive日志文件,查找更详细的错误信息,以帮助定位问题。 综上所述,当出现"failed: execution error, return code 3 from org.apache.hadoop.hive.ql.exec"错误时,我们应该仔细检查可能导致错误的各种原因,并采取适当的解决措施来解决问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据学习僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值