二百二十一、Hive——HQL报错:return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

文章讲述了在运行HiveSQL时遇到的执行错误,涉及YARN上的资源限制问题。通过一系列调优尝试,发现只需禁用`hive.auto.convert.join`就能解决问题。作者强调了根据报错详情进行针对性优化的重要性。
摘要由CSDN通过智能技术生成

一、目的

在运行HiveSQL时,执行报错

tatement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

二、在yarn上查看任务报错

The required MAP capability is more than the supported max container capability in the cluster. Killing the Job. mapResourceRequest: <memory:10150, vCores:1> maxContainerCapability:<memory:4096, vCores:4>

Job received Kill while in RUNNING state.

REDUCE capability required is more than the supported max container capability in the cluster. Killing the Job. reduceResourceRequest: <memory:10150, vCores:1> maxContainerCapability:<memory:4096, vCores:4>

三、解决报错

在尝试一堆Hive调优方式之后都不行

--hive调优
set hive.vectorized.execution.enabled=false;
set hive.auto.convert.join=false;
--map阶段内存不足
set mapreduce.map.memory.mb=10150;
set mapreduce.map.java.opts=-Xmx6144m;
-- reduce阶段内存不足
set mapreduce.reduce.memory.mb=10150;
set mapreduce.reduce.java.opts=-Xmx8120m;
--hive执行内存不足
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.dynamic.partition=true;
set hive.exec.parallel=true;
set hive.support.concurrency=false;
set mapreduce.map.memory.mb=4128;

最后发现只需要一下一条调优语句即可

--hive调优
set hive.auto.convert.join=false;

四、调优后再次执行SQL

(一)执行动态加载SQL

动态加载数据执行成功!

(二)查看表数据

经此一遭才发现,Hive调优其实并不需要运行很多SQL,甚至运行调优SQL多了后会导致问题,这个需要尝试。

SQL运行报错后,可以到yarn里面看任务报错详情,然后根据报错详情再针对性的优化

set hive.auto.convert.join=false;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天地风雷水火山泽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值