首页 > 其他分享 >hive 插入(insert)数据报错 解决办法

hive 插入(insert)数据报错 解决办法

时间:2024-03-21 18:13:17浏览次数:34  
标签:insert hadoop hive HADOOP 报错 mr HOME 日志

异常信息:org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

我的问题是:可以创建表,可以删除表,可以给表导入数据,可以查询数据,但是不能使用insert插入数据,即便数据量只有一条也不行(只要不是mr,能本地执行成功都没问题)。

我的解决办法:

修改 haddop 里面的配置文件 mapred-site.xml,添加下面配置

<!-- mr运行需要的配置,分别是 appmanger,map,reduce的环境  -->
<!-- 不配置会导致mr无法运行  -->
 <property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>

你的问题可能不一样,如果解决不了,我说说我解决这个问题的思路,也许你能找到你的问题是怎么出现的。

hive的异常报的很不明显,只收提示异常return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask。这是一类异常,我甚至感觉只要mr执行失败都是这个异常,是一个很不明显的异常。

既然是hadoop那边的异常,并且hive看不出是什么异常,那就去查hadoop的日志,盲猜和执行节点或者资源分配节点的日志里面可能有写有你能够提供帮助的日志,查询到resourcemanager日志有如下信息

2024-03-21 09:58:11,846 INFO org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl: Application application_1710986047084_0001 failed 2 times due to AM Container for appattempt_1710986047084_0001_000002 exited with  exitCode: 1
Failing this attempt.Diagnostics: [2024-03-21 09:58:11.803]Exception from container-launch.
Container id: container_1710986047084_0001_02_000001
Exit code: 1

[2024-03-21 09:58:11.828]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

Please check whether your <HADOOP_HOME>/etc/hadoop/mapred-site.xml contains the below configuration:
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>

看了日志就很明显了,都已经说了确认下下面的配置有没有配置,按照提示配置就行了。

为啥我一开始没有怀疑是hadoop的问题呢?因为我的hadoop不是现在安装的,是之前配合hbase使用的,后来也用它配合flink跑过一些分布式计算,所以我一开始根本没怀疑hadoop出现问题 ,使用hbase 说明存储没问题,跑了分布式计算下意识我就觉得mr没问题(flink的计算引擎不是mr,是自己的计算引擎,flink只是用hadoop的分布式存储和yarn作为资源分配器)。

想到可能是mr的问题以后,跑了一个hadoop 自带的mr例子,果然也报错,回头看了一下hive任务执行的时候hadoop的日志,也有同样异常信息。

日志是最能提解决问题方向的东西,前提是你要找对日志,如果找到的一些没啥意义的日志,那就事倍公半了。

标签:insert,hadoop,hive,HADOOP,报错,mr,HOME,日志
From: https://www.cnblogs.com/cxygg/p/18087973

相关文章

  • requests.post传的data如果是直接使用python dict封装,有些服务端接收不了这种数据类型
    平时在自己的php项目里,使用dict方式组装data,然后requests.post,一点问题都没有。但是调了后端一个java的微服务接口,结果就一直报错422: 最后问了一下开发,得到提示“python好像还有个毛病,python的json对象转字符串的时候,转出来的字符串不是标准json字符串,还要做个字符串处理,变成......
  • Xcode开发iOS运行项目报错symbol(s) not found for architecture x86_64的解决办法
    写在前边的话:如果是xcode13,那么请先升级系统到Monterey(ios12.7.4),并安装xcode14。因为好多sdk都是xcode14才有的,xcode13不支持,任你把buildsetting玩出花来都没用的。Xcode13的时候,各种报错百度搜索解决方法,各种配置buildsettings,然而没有什么用,真机/模拟器都是一一直报错。......
  • debian11 网卡报错carrier-changed
    起因今天中午12点多公司某台拥有双网卡(内网和外网)的debian11操作系统的机器内网IP地址发生了变化,经过询问都说没有人动过这台机器的IP地址。这让我感到十分疑惑,没有人改动怎么IP地址怎么还会变化呢?背景这台Debian11的操作系统拥有两张网卡,一张外网网卡,一张内网网卡。由于公......
  • 使用spring data jpa开启高性能批量insert/update
    1、jdbcurl加上参数&rewriteBatchedStatements=true2、yaml/properties加上配置spring.jpa.properties.hibernate.jdbc.batch_size:2000spring.jpa.properties.hibernate.jdbc.batch_versioned_data:truespring.jpa.properties.hibernate.order_inserts:truespring.jpa......
  • react router v6报错 useRoutes() may be used only in the context of a <Router> comp
    在使用reactrouterv6版本的时候,按照之前的方法使用src/main.tsx是这样的,几乎不动import*asReactfrom"react";import*asReactDOMfrom"react-dom/client";import"~/assets/index.css";importAppfrom"~/App.tsx";ReactDOM.createRoot(......
  • 解决 [FATAL] plugin/loop: Loop (127.0.0.1:49443 -> :53) detected for zone "." 报
    问题背景:这个是安装k8s时报的错,安装使用的是ubuntu系统,当安装到coredns时报如下错 解决方法:查找了一番资料,得出结论这个算是ubuntu和k8scoredns安装的一个兼容性问题,不过很好解决,参照coredns官方文档就可以~首先贴出官网:https://coredns.io/plugins/loop/#troubleshooting......
  • PHP 封装整理 insert语句
    废话不多说直接上代码publicfunctioninsert($table,$data,$keyName,$canRepeatAdd=true){$keyStr="";$paramStr="";$params=[];foreach($dataas$key=>$value){if(is_array......
  • vim 编辑报错导致无法正常退出和编辑
    vim编辑报错导致无法正常退出和编辑在使用Vi或Vim编辑器时,如果遇到错误,有时是因为非正常退出导致swap文件(.swp文件)的存在。以下是如何处理由swap文件引发的问题,以及删除swap文件这一解决方法:识别问题:当你试图打开一个之前未正常关闭的文件时,Vim会检测到与该文件关联......
  • python requests.post Max retries exceeded with url 报错
    python requests.post  Maxretriesexceededwithurl 报错 importrequestsfromrequests.adaptersimportHTTPAdapterfromrequests.packages.urllib3.util.retryimportRetrysession=requests.Session()retries=Retry(total=5,backoff_factor=0.1,st......
  • Flume - [04] Hive Sink
      一、概述  HIVESink将包含分割文本或JSON数据的事件直接流到Hive表或分区中。事件是使用Hive事务编写的。一旦一组事件被提交到Hive,它们就会立即对hive查询可见。流到其中的分区可以是预先创建的,也可以是可选的,如果它们丢失了,可以创建它们。传入事件数据中的字段映射到......