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

Hive解决return code 3问题 (作者:陈玓玏) 1. 问题描述 使用hive跑数时,出现return code 3的错误,但没有报出代码中具体位置的错误。 2. 问题原因 具体原因不是非常清楚,但是网上提到的原因最有可能的是数据倾斜导致的,具体的表现就是任务执行的时间非常长,并且执行了非常长的时间之后还失败了,出现code 3错误。 这类错误一般不是代码有逻辑或语法问题,而是数据层面的问题,向code 2也是这样,之前碰到的c... 阅读详情
AI摘要

本文详细解析了在CDH上执行Hive SQL时遇到的各种错误,包括returncode1、returncode2和returncode3的错误原因及解决方法。针对不同错误提供了具体的配置调整和代码优化策略。

今天在CDH上执行hive sql的时候报了一个错

错误内容为:

    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
错误语句:

    INSERT OVERWRITE DIRECTORY '{$dir}' select * from tmp_analyse_os where logdata='{$begin}'  

错误原因:

    hive源码会检查导出的路径是否存在,如果不存在则报这个错。这个错只有在CDH上的hive才会报错,apache已经修复了这个bug,其实CDH不是没有修复这个bug,而是添加了一个配置文件,但配置文件默认是false(蛋疼)。

解决方法:

    在hive上添加一个配置即可。

 <property>  
  <name>hive.insert.into.multilevel.dirs</name>  
  <value>true</value>  
</property>

下面是源码中关于文件权限继承的开关代码:
HiveConf.ConfVars.HIVE_WAREHOUSE_SUBDIR_INHERIT_PERMS);
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;

产生问题的原因:
hive的查询结果在在进行move操作时,需要进行文件权限的授权,多个文件的授权是并发进行的,hive中该源码是在一个线程池中
执行的,该操作在多线程时线程同步有问题的该异常,这是hive的一个bug,目前截止目前的最新版本Apache Hive 2.1.1还没有修复该问题;
可以通过关闭hive的文件权限继承 hive.warehouse.subdir.inherit.perms=false 来规避该问题。

解决方法:
hive.warehouse.subdir.inherit.perms

  <property>
    <name>hive.warehouse.subdir.inherit.perms</name>
    <value>true</value>
    <description>
      Set this to false if the table directories should be created
      with the permissions derived from dfs umask instead of
      inheriting the permission of the warehouse or database directory.

    </description>
</value>

return code 1 

原因:

      'Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask'     

      报错是抄的,多次实践证明,执行hive sql ERROR 返回 return code 1 基本上是执行的HQL无法加入到对应的用户队列中。

解决方法 1:

      执行HQL前,加入 set MapReduce.queue = QUEUE_CRA; CRA(用户名)

解决方法 2:

          hdfs dfs命令对文件夹下的文件赋予权限。使其可以进行操作。

 

return code 2:

     原因 1:

         HQL产生较大的笛卡尔积,撑爆了HIVE 执行的最大线程载荷。

     解决方法:

         优化HQL.

     原因 2 :

Hive运行成功之后,当输入select count(*) from XX或者插入数据时,居然碰到BUG。

2016-04-14 12:31:56,199 Stage-1 map = 0%,  reduce = 0%

Ended Job = job_1460599682683_0005 with errors

Error during job, obtaining debugging information...

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

MapReduce Jobs Launched:

Stage-Stage-1:  HDFS Read: 0HDFS Write: 0 FAIL

Total MapReduce CPU Time Spent: 0 msec
这个问题只是HIVE单方面的问题,而用Hadoop  Job日志查看,却是YarnException: Unauthorized request to start container的问题。未经授权的请求,怎么会有这样的问题呢。经过网上未解,说是各个节点的时间未同步的问题。

解决方法:

简直是晕,不知道谁刚好把某个节点时间修改了。才导致了这样的坑,居然都踩上了。于是把时间进行修改,进行系统时间同步,果然没有再次出现。
return code 3:

    主要原因是数据倾斜。

解决方法 1:   对数据大的表进行GROUP BY ,减少数据量。

解决方法 2: 

   set hive.auto.convert.join = false;       

       •说明:是不是依据输入文件的大小,将Join转成普通的Map Join

       •默认值: false

   set hive.ignore.mapjoin.hint = false;

       •说明: 是否忽略mapjoin hint 即mapjoin标记

        •默认值: true

   set hive.exec.parallel = true;     

         •说明:是否并行提交任务

        •默认值:false

Hive 中的权限设置 Hive 底层数据都是存储 是基于HDFS的 阅读详情

相关推荐

Leetcode 1101:彼此熟识的最早时间(超详细的解法!!!)

在一个社交圈子当中,有N个人。每个人都有一个从0到N-1唯一的id编号。 我们有一份日志列表logs,其中每条记录都包含一个非负整数的时间戳,以及分属两个人的不同id,logs[i] = [timestamp, id_A, id_B]。 每条日志标识出两个人成为好友的时间,友谊是相互的:如果A和B是好友,那么B和A也是好友。 如果A是B的好友,或者A是B的好友的好友,那么就可以认为A也与B熟识。 ...

coordinate的博客 1499

记录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 co

FunnyPrince_的博客 1万+

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

Hive报错 使用datagrip操作hive,源hql是为分区表插数据,load data local inpath '***' into table ***。 先看hive日志。 日志配置在hive conf文件架中hive-log4j.properties文件的hive.log.dir中。 粗略看一眼,最后一行内容为。 exec.Task (SessionState.java:pr...

weixin_39143367的博客 1188

hive 报错return code 40000 from org.apache.hadoop.hive.ql.exec.MoveTask解决思路

但是这个错是hive的错,我们开发过程 中会遇到很多hive问题,都怎么解决呢?我建议看源码,但先不要看报错源码,直接看errorCode源码,别人hive的开发者也是人,也知道这里会报错,可能会好心告诉我们怎么解决。看到这里获取配置项,就舒服了,毕竟就算我们发现假设hive源码有问题,我也没法修改cdp的源码。那么直接看hive的源码,毕竟cdp也是抄的hive官方的代码。1.设置线程数为1,线程数越少,产生bug的几率就越小。3.改为分区表,此时不在一个目录了,就不会有这个问题了。

cclovezbf的博客 4527

HiveSqlBug :return code 1&No cluster diagnostics found&return code -101

这种报错可能出现在insert select中,也可能直接load中报错出现,对于tez引擎和mr引擎,这个报错可能会有不同的原因 需要读者自行分辨。解决办法:频繁登录导致的session错乱,注销hue 等待一段时间 重新登录。这种报错有可能是锁表,例如hive3中有事务,一读一写就会有这种问题。这个一般是动态分区时报的错,或者传参过多导致的。

Direction_Wind的博客 4123

Python数据分析实战:用TIGRAMITE库5步搞定时间序列因果分析(附完整代码)

本文详细介绍了如何使用TIGRAMITE库进行时间序列因果分析,通过5个步骤从环境配置到模型优化,帮助读者掌握因果关系库的应用。附完整代码示例,适合数据分析师和研究人员快速实现复杂时间序列的因果发现。

weixin_29050271的博客 160

hive报错--code1/2/3

return code 1 原因: 'Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask' 报错是抄的,多次实践证明,执行hive sql ERROR 返回 return code 1 基本上是执行的HQL无法加入到对应的用户队列中。 解决方法 1: 执行HQL前,加入 set MapReduce.q

qq_46893497的博客 9855

比亚迪开放平台接口实战:车身状态监测与智能车联应用开发

本文详细介绍了如何利用比亚迪开放平台的车身状态接口进行智能车联应用开发。通过核心类BYDAutoBodyworkDevice,开发者可以安全获取车辆VIN、车门车窗状态、蓄电池电压、方向盘转角等实时数据,并利用监听器实现状态实时响应。文章提供了从SDK集成、接口调用到典型应用场景(如远程车况检查、车队管理)的完整实战指南,助力开发者快速构建基于比亚迪车辆数据的创新应用。

weixin_29176179的博客 718

hive报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask.

进入该目录下:root@nl-virtual-machine:/usr/local/hadoop#解决方法:hdfs dfs命令对文件夹下的文件赋予权限,使其可以进行操作。

weixin_74594687的博客 1188

IT资产管理(三)之GLPI资产录入

glpi 在 10 版本之后已经有自带的 glpi-agent 代理程序可自动获取服务器、电脑等的信息并进行自动录入和更新,不再依赖 10 版本之前的 fusioninventory 插件或者第三方资产统计平台 OCS Inventory 等

予挚之的博客 2983

一文让你轻松理解Wi-Fi理论速率计算方式

如上所示,在使用FDM的802.11协议上,最小子载波带宽为312.5KHz,那一个信道频宽为20MHz的信道可以分成64个子载波,但是由于技术原因,有效使用的是52个子载波,实际用于数据传输的只有48个,有4个子载波充当导频载波。载波:交流信号或者直流信号本身不具备数据传输能力,但是如果信号发生很小的波动或者变化,从而实现数据的收发。所谓子载波,就是将信号划为为很多的小信道,这些小信道可以实现数据的并发传输,子载波我们英文称为subcarrier,也称为音调(tone)。Symbol time如下所示。

1042484520@qq.com(邮箱) 3448

hive报错(1)MoveTask

在CDH上执行hive sql的时候报了一个错。错误内容为:    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask错误语句:    INSERT OVERWRITE DIRECTORY '{$dir}' select * from tmp_analyse_os where log...

mnasd的博客 3810

RK平台PCIE-Ethernet扩展:Intel I210移植与性能飞升之路

本文详细介绍了Intel I210千兆以太网控制器在瑞芯微RK平台的移植与优化过程。通过硬件适配、内核配置、驱动开发及性能调优四个关键环节,实现了RK平台的网络性能提升。硬件方面,重点说明了PCIE接口的规范连接与供电检查;软件方面,系统阐述了内核配置、设备树修改和驱动编译流程。在性能优化环节,详细介绍了中断优化、缓冲区设置和TCP/IP协议栈调优策略,并采用Iperf和Netperf工具进行量化测试验证。测试结果显示,优化后的网络吞吐量提升20%以上,延迟降低40%,为工业控制、智能安防等场景提供了可靠的

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 351

出现报错:org.apache.hadoop.hive.ql.exec.MoveTask. Unable to move source

出现报错:org.apache.hadoop.hive.ql.exec.MoveTask. Unable to move source

sinat_35197112的博客 2489

/home 挂载点无法访问 怎么解决 指令可以进入Home目录 du: 无法访问“*“: 输入/输出错误

本文介绍了Linux系统中XFS文件系统损坏的故障排查与修复方法。当/home挂载点出现I/O错误时,通过dmesg发现XFS日志错误和磁盘I/O报错,判断可能是文件系统逻辑损坏或硬件故障。解决方案包括:1)尝试卸载分区;2)使用xfs_repair工具进行预检查和正式修复;3)在极端情况下使用-L参数强制清空日志;4)若存在硬件故障,建议优先进行数据抢救并更换硬盘。最后强调重要数据应先备份,再考虑系统重建。

专注于计算机研发知识和资讯分享 155

VN5620以太网测试——环境搭建篇

CANoe(CAN open environment)VN5620 :是一个紧凑而强大的接口,用于以太网网络的分析、仿真、测试和验证。VN5620 接口支持各种可能的应用。它适用于与其他总线系统、网络参与(例如在模拟和生成帧、测试中的负载和错误)的同步以太网监控。在2021年Vector公司的以太网接口卡VN5610和VN5640设备已经陆续停产,相应被VN5620和VN5650代替。

诊断协议那些事儿's blog 8928

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask.

错误:加载数据到分区表中失败。 1 报错原因: 由于 修改了 mysql 中的 hive 字符编码 然后 hive 反应比较慢 识别不到 所以 报错。 2 解决方案: 第一步: 进入mysql mysql -uroot -p123456 第二步 :查看 mysql 的 数据库 mysql> show databases; 第三步:删掉 hive dro...

最慢的步伐不是跬步,而是徘徊;最快的脚步不是冲刺,而是坚持 2万+

ST03N 里看不到 SE38 / SA38?别急,这不是没记录,而是被换了名字

摘要:SAP系统中SE38/SA38事务码在ST03N统计中可能"隐身",因其对话步骤被归集到对应的程序名(如SE38→RSABAPPROGRAM)。ST03N侧重工作负载聚合统计,而STAD提供短期明细记录。正确排查方法是:在ST03N中搜索程序名而非事务码,再通过STAD验证具体使用情况。这一现象在权限整改和审计中易造成误判,建议将程序名纳入常规监控,并区分ST03N(趋势分析)与STAD(事实校验)的不同用途。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 953

【大数据技术】本质原因之Hive分区表插入数据报错Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

【大数据技术】分区表插入数据报错:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Except 1、分区表的分区字段内容里最好不用中文; 2、若出现上述报错,可考虑修改元数据保存格式问题,我的元数据保存在mysql里,可尝试修改mysql里Metastroe所在库的字符编码(目前正研究中) ;.........

u011762522的博客 2924

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

load数据到hive分区表报错: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTas

在启动hive创建表的时候,兴许你们回碰到这个错误:http://blog.csdn.net/qq_35732963/article/details/54139581;百度一下,说是字符编码的问题,那个好解决,但是下面这个错,却不一样,归根到底是数据库出了问题! 1、上传数据到hive表时报错: hive> load data local inpath '/home/hadoop/da

Johnmay--Blog 3万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

记一次hive加载文件报错:return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

hive加载时:第一次成功了,第二次就失败了,报错如下: ERROR [HiveServer2-Background-Pool: Thread-11607]: ql.Driver (SessionState.java:printError(960)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ex...

lcm_linux的博客 4975

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[已解决]FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to

因为默认hive,spark任务数据先写到一个临时目录,等各个节点的数据都写完整以后,校验没问题了,在move到表的hdfs路径下(所谓move其实就是重命令),这个过程报错,说明跟hdfs有关系,跟yarn,hive,spark都没有关系了。(原因是因为为了数据安全,hdfs路径加T权限,只有表的所有者才可以删表,其他人删不了数据,估计是删表异常,造成数据未删除。既然跟hdfs有关系,那就说明一般是路径有问题(比如权限,路径异常,节点丢失等等)。很简单,把表所在的路径数据清空即可。

Maynor的博客 2449

Hive报错 return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

报错场景是这样的我创建了一个学生表student1,和学生分区表studentpar2,那么现在我要根据student1中的学生性别动态向studentpar2中加载数据 sql语句为 insert into table studentpar2 partition(sex) select * from student1; 然后就报错 查啦很多资料,内存问题 在Hadoop的配置文件mapred-site.xml添加 <property>   <name>mapreduce.

qq_48959845的博客 2197

hdfs文件写入hive报错statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.

通过kerberos认证后通过jdbc访问hive数据库,对数据库进行创表后准备从hdfs中插入数据,插入dir目录下的所有csv文件片段数据,报错java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask sql = "load data inpath '/xxx/dir/*.csv'

qq_44079295的博客 3095
上一篇: case when是不是只要满足第一个别的就不进行执行了
下一篇: HIVE 插入中文分区值的问题
mingming20547
博客等级 码龄17年 80粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值