前言:
执行hive sql报错,sql逻辑是两个表左连接并将数据插入新的表中。
报错信息:
[ERROR] 2023-12-05 15:49:49.165 +0800 - execute sql error: Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask [ERROR] 2023-12-05 15:49:49.165 +0800 - sql task error java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask at org.apache.hive.jdbc.HiveStatement.waitForOperationToComplete(HiveStatement.java:385) at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:254) at org.apache.hive.jdbc.HiveStatement.executeUpdate(HiveStatement.java:490) at org.apache.hive.jdbc.HivePreparedStatement.executeUpdate(HivePreparedStatement.java:122) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
解决方式:
#关闭自动装载(默认开启)原因:可能是在map join的时候数据量比较大,服务器内存不足,不足以放下小表中的数据。
set hive.auto.convert.join= false;
#不忽略MAPJOIN标记(默认值:true;是否忽略mapjoin hint 即HQL 语句中的 mapjoin 标记)
set hive.ignore.mapjoin.hint=false;
标签:HiveStatement,java,hive,报错,sql,apache,org,Execution From: https://www.cnblogs.com/chong-zuo3322/p/17878859.html