(作者:陈玓玏)

1. 问题描述
使用hive跑数时,出现return code 3的错误,但没有报出代码中具体位置的错误。

2. 问题原因
具体原因不是非常清楚,但是网上提到的原因最有可能的是数据倾斜导致的,具体的表现就是任务执行的时间非常长,并且执行了非常长的时间之后还失败了,出现code 3错误。

这类错误一般不是代码有逻辑或语法问题,而是数据层面的问题,向code 2也是这样,之前碰到的code 2,就是有一个大表和一个超大表做join,导致数据量超大,集群承受不住而爆出。

3. 解决方案
我目前采取的方案可以解决问题,主要是修改设置项:

set hive.auto.convert.join = false;
set hive.ignore.mapjoin.hint = false;
set hive.exec.parallel = true;

hive 1.0+版本是默认开启mapjoin的,可能大表小标关联时,小表并不小,所以使用mapjoin时反而出现了异常。

所以此时不使用mapjoin,直接使用common join,但使用common join在存在数据倾斜的情况下,会导致最终结果出来得非常慢(本来mapjoin是用来解决小表很小时的这个问题的)。因此,开启并行,让sql出现多个可并行的任务时,并行执行,从而提升common join的效率,以空间换取时间。

4. 总结
这个方法可以解决问题,让代码不报错且速度较快地跑出结果,但肯定还不是最优的结果,因为我们还可以从sql角度解决数据倾斜问题,或者看是否有表的结构设计不合理,导致两个表中有不同类型但同名字段导致数据倾斜问题,或者是考虑更高效地使用本身就是设计得比较高效的mapjoin方法。

参考资料:

  1. https://blog.csdn.net/nysyxxg/article/details/73872245
  2. https://blog.csdn.net/wingman91/article/details/84704130
  3. Hive中common join和mapjoin的区别:http://itindex.net/detail/55106-hive-join-%E5%8E%9F%E7%90%86
  4. 数据倾斜常见原因及优化:https://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842860.html
  5. hive中设置并行的研究:https://blog.csdn.net/oppo62258801/article/details/79468473

Hive解决return code 3问题相关推荐

  1. hive异常 return code X from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask 解决

    转自:https://www.iteye.com/blog/vase-2090320 不知道是不是hive-0.12版增强了local mode的原因,在之前版本运行好好的Hive-QL在这个版本上错 ...

  2. 使用hive报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方法

    1.情况 两表join 其他时间数据正常插入.唯独插入7月1日数据时 , 报错: join 语句 insert overwrite table A partition (log_date= '2021 ...

  3. 成功解决: return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    异常: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop. ...

  4. USDP使用笔记(五)设置Hive on Tez解决return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask问题

    前言 使用Hive的命令行或者beeline时,经常有测试HQL语法或者逻辑计算公式是否正确的需求,使用Load灌数据到Hive太过重量级了,轻度使用的场景下难免会用到insert操作. 然鹅Hive ...

  5. hive问题-return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    执行hive sql时遇到问题: FAILED:Execution Error,return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedT ...

  6. 大数据hive篇--return code 3 报错

    问题描述 使用hive跑数时,出现return code 3的错误,但没有报出代码中具体位置的错误. 问题原因 具体原因不是非常清楚,但是网上提到的原因最有可能的是数据倾斜导致的,具体的表现就是任务执 ...

  7. 解决Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    hive在运行hql语句时报如下错误: Error: Error while processing statement: FAILED: Execution Error, return code 2 ...

  8. Hive 插入数据时遇到Return Code 2问题的解决

    正常情况下,估计很难遇到这个问题. 但是也刚好都碰上了这样的问题.于是把解决过程记录一下. Hive运行成功之后,当输入select count(*) from XX或者插入数据时,居然碰到BUG. ...

  9. hive报错(1)MoveTask/HIVE return code 1、2、3

    今天在CDH上执行hive sql的时候报了一个错 错误内容为: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive. ...

  10. hive 在kettle 作业return code 2 的问题 Unexpected exception: Unexpected exception: Unexpected exception:

    今天突然进去跑不了数据老是报错return code 2 .之前可以跑通的. 日志如下 矢量查询(Vectorized query) 每次处理数据时会将1024行数据组成一个batch进行处理,而不是 ...

最新文章

  1. zabbix自动化监控8(2.4)
  2. 算法------对称二叉树
  3. python爬虫从入门到精通-python爬虫从入门到精通
  4. 自动化C语言第一次月考试卷,145班《计算机组成与工作原理》第一次月考试卷...
  5. 什么样的 RPC 才是好用的 RPC
  6. python ctp接口_使用ctp的python接口
  7. mysql 匿名块_MySQL存储过程定义中的特性(characteristic)的含义
  8. Android Gallery控件使用方法详解
  9. Indent Guides for Visual Studio 代码格式化收缩插件
  10. Java并发编程-BlockingQueue阻塞队列
  11. cmake构建qt工程
  12. html 正则表达式密码判断,JS利用正则表达式实现简单的密码强弱判断实例
  13. 计算机能换显卡吗,一体机电脑可以更换CPU和显卡嘛?
  14. Delta并联机构在ADAMS仿真中的运动副设置(二)
  15. 计算机应用基础谭忠兵,全程导学 | 第19期 足履实地,无畏远方——专访谭忠兵老师...
  16. ElasticSearch学习总结(基础篇,可学习,可复习)
  17. [论文解读]Deep active learning for object detection
  18. ARM体系架构—ARMv7-A指令集:协处理器指令
  19. 个性代码注释 大合集
  20. 几种基本的数据结构(待修改)

热门文章

  1. 路在脚下,却不知怎么去走?
  2. java判断文件是否被占用_java判断一个文件是否正在被其他程序使用(调用)?...
  3. 【游戏开发实战】2D游戏摄像机镜头跟随,屏幕边缘限制镜头移动(使用Cinemachine组件)
  4. u盘文件删除如何恢复呢?
  5. 电脑网线平行线与交叉线的用途?
  6. 基于lingo的线性回归和非线性回归
  7. 使用MATLAB进行多元非线性回归拟合预测
  8. 编程代码分析-使用winsock搜索蓝牙设备
  9. 搭建Hadoop HA集群
  10. 测试用例需要包含哪些内容