在执行脚本:
create table liuchengtmp1_%CHINDAASDATE% as select a.markcode, a.xiangmu, case when instrfun(xiangmu,'已注册(') >0 THEN '已注册' when instrfun(xiangmu,'初步审定(') >0 THEN '初步审定' ELSE XIANGMU END XIANGMU_new from f_tm_process_hdfs_ext_%CHINDAASDATE% a join ( select max(fliuc_id) fliucid1 from f_tm_process_hdfs_ext_%CHINDAASDATE% a join (select a.markcode,max(a.liuchengdate) maxliuchendate,max(a.fliuc_idt) maxfliucidt from f_tm_process_hdfs_ext_%CHINDAASDATE% a join (select markcode, max(liuchengdate) maxliuchendate from f_tm_process_hdfs_ext_%CHINDAASDATE% group by markcode) b on a.markcode = b.markcode and a.liuchengdate = b.maxliuchendate group by a.markcode) c on a.markcode = c.markcode and a.liuchengdate = c.maxliuchendate and a.fliuc_idt = c.maxfliucidt group by a.markcode; ) e on (a.fliuc_id = e.fliucid1);
脚本分拆成12个mr任务,在执行到第5个mr任务的时候报错如下:
网上找了好多资料,有的说这不是个错,有的说是内存不够造成,看上面报错截图,内存使用一直在增加,
因此估计是内存不够了,
后来处理措施为,将上述语句拆分成2步来执行,中间有一次数据落地,这样防止将所有数据都放在内存中执行,如下:
drop table if exists liuchengtmp_%CHINDAASDATE%; create table liuchengtmp_%CHINDAASDATE% as select max(fliuc_id) fliucid1 from f_tm_process_hdfs_ext_%CHINDAASDATE% a join (select a.markcode,max(a.liuchengdate) maxliuchendate,max(a.fliuc_idt) maxfliucidt from f_tm_process_hdfs_ext_%CHINDAASDATE% a join (select markcode, max(liuchengdate) maxliuchendate from f_tm_process_hdfs_ext_%CHINDAASDATE% group by markcode) b on a.markcode = b.markcode and a.liuchengdate = b.maxliuchendate group by a.markcode) c on a.markcode = c.markcode and a.liuchengdate = c.maxliuchendate and a.fliuc_idt = c.maxfliucidt group by a.markcode; drop table if exists liuchengtmp1_%CHINDAASDATE%; create table liuchengtmp1_%CHINDAASDATE% as select a.markcode, a.xiangmu, case when instrfun(xiangmu,'已注册(') >0 THEN '已注册' when instrfun(xiangmu,'初步审定(') >0 THEN '初步审定' ELSE XIANGMU END XIANGMU_new from f_tm_process_hdfs_ext_%CHINDAASDATE% a join liuchengtmp_%CHINDAASDATE% b on (a.fliuc_id = b.fliucid1);
修改后,执行,不在报错
下面是参考链接,值得看看老外们的说法:
相关推荐
Hive错误之 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误分析_xiaohu21的博客-CSDN博客.mht
ERROR : FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. 前言报错信息异常分析配置改动后记 前言 在成功消除Cloudare管理界面上那些可恶的警告之后,我又对yarn...
标题 "Hive2.x系列驱动" 指的是Hive版本2.x的客户端连接器,这些驱动程序使得应用程序能够与Hive服务器进行交互,执行SQL查询并获取数据。Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL语言处理存储在HDFS...
在《Apache Hive Cookbook》这本书中,作者深入浅出地介绍了如何利用Hive解决实际数据处理问题。源码部分是书籍内容的实践应用,可以帮助读者更好地理解和应用书中提到的技术点。 `Chapter 2`可能涵盖了Hive的基本...
为了解决这个问题,我们可以创建自定义的Shell脚本以及使用systemd服务来实现一键启停Hive的相关服务。 首先,我们来看一下提供的Shell脚本。这个脚本定义了两个主要的功能:启动和停止Hive的Metastore服务和...
Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", ""); Statement stmt = con.createStatement(); String tableName = "test_table"; String sql = "CREATE TABLE " ...
标题“hive1_2_1jars.zip”指的是一个包含Hive 1.2.1版本相关库的压缩文件,这些库可能用于支持Spark 3.x版本与Hive的交互。在Spark 3中,如果你需要连接到Hive元存储进行数据操作,你需要正确配置Spark的`spark.sql...
"HIVE安装及详解" HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将...
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop105:10000: Failed to open new session: java.lang.IllegalArgumentException: Cannot modify hive.query.redaction.rules at runtime....
hive.jdbc.url=jdbc:hive2://localhost:10000/default hive.jdbc.driver=com.cloudera.hive.jdbc41.HS2Driver hive.jdbc.username=hive hive.jdbc.password=root ``` 其中,`url`指向Hive Server2的地址,`driver`...
这个问题是由于Hive中的一个已知bug,具体问题可以在Apache JIRA的HIVE-16398中找到。为了解决这个问题,可以尝试增加`hive.localize.resource.num.wait.attempts`的属性值,将其从默认的5提升到如25这样的更高数值...
2. 数据倾斜问题:Hive中数据倾斜问题是非常常见的,例如,一些节点上数据远远多于其他节点。解决方法是,使用数据 rebalance 技术,调整节点上的数据分布。 3. 资源不足问题:Hive中资源不足问题是非常常见的,例如...
Hive JDBC 2.6.2.1002 是一个关键组件,它在大数据处理领域扮演着重要的角色。Hive 是由 Apache 软件基金会开发的一个数据仓库工具,它允许用户使用类 SQL 查询语言(HQL)来处理存储在分布式文件系统中的大规模数据...
2. **备份现有环境**:在进行任何重大更新之前,务必备份现有的 Hive 3.0 配置和数据。这可以通过 Ambari 的备份功能实现,也可以手动备份 HDFS 上的元数据和用户数据。 3. **下载并安装 Hive 4.0**:获取 Hive 4.0...
1. **查找被锁定的任务**:可以通过查看Hive日志或使用Hive提供的工具来定位问题所在。 2. **终止锁定任务**:找到锁定任务后,使用`hive`命令行工具或其他管理工具终止该任务。 3. **重新执行受影响任务**:解锁后...
2. **元数据管理**:Hive 有一个元数据存储库,保存着关于表、分区、字段等信息。这些元数据可以帮助 Hive 理解数据的结构,使得用户能够通过 SQL 方式进行查询。 3. **灵活性**:Hive 支持多种数据模型,包括行...
2. **hive-jdbc.jar**:提供Hive的JDBC驱动,使你能通过JDBC接口连接到Hive服务器。 3. **libthrift.jar**:Thrift库,Hive使用的RPC框架,用于跨语言通信。 4. **hadoop-common.jar** 和 **hadoop-hdfs.jar**:...
### Kettle 批量插入Hive2:解决表输出速度慢问题 #### 一、问题背景及原因分析 在使用Kettle进行数据处理时,尤其是将数据从源系统传输到目标系统的过程中,如果目标系统是Hive2,则可能会遇到表输出速度极其缓慢...
Hive可以通过Thrift协议暴露服务,通常使用HTTP或HTTPS作为传输层,因此连接字符串可能形如`jdbc:hive2://hostname:port/;transportMode=http;httpPath=hive.server2.thrift.http.path;principal=kerberos_principal...
hive自定义安全认证使用