我正在使用HDP 2.1中的Hive-jdbc连接
代码适用于不涉及mapreduce的查询,例如“select * from tabblename”。使用'where'子句修改查询时,或者如果我们指定列名(将在后台运行mapreduce),相同的代码显示错误。
我已通过在HiveCLI中执行查询验证了查询的正确性。 此外,我已经验证了用户通过其运行java-jdbc代码的表的读/写权限。
错误如下
java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:275)
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:355)
at com.testing.poc.hivejava.HiveJDBCTest.main(HiveJDBCTest.java:25)
答案 0 :(得分:1)
今天,当我从java提交配置单元任务时,我也遇到了这个异常。 以下错误:
org.apache.hive.jdbc.HiveDriverorg.apache.hive.jdbc.HiveDriverhive_driver:
org.apache.hive.jdbc.HiveDriverhive_url:jdbc:hive2://10.174.242.28:10000/defaultget
connection sessucess获取hive连接成功!
java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
我尝试在hive中使用sql execute并且运行良好。然后我看到登录/var/log/hive/hadoop-cmf-hive-HIVESERVER2-cloud000.log.out
然后我找到了这个错误的原因。以下错误:
Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=anonymous, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
我使用了以下命令:
sudo -u hdfs hadoop fs -chmod -R 777 /
这解决了错误!
hive_driver:org.apache.hive.jdbc.HiveDriver
hive_url:jdbc:hive2://cloud000:10000/default
get connection sessucess
获取hive连接成功!
Heart beat
执行insert成功!
答案 1 :(得分:0)
如果您使用直线执行相同的查询,您是否看到了运行测试程序时的相同行为?
beeline客户端还使用开源JDBC驱动程序并连接到Hive服务器,这与您在程序中执行的操作类似。另一方面,HiveCLI嵌入了Hive,默认情况下不连接到远程Hive服务器。您可以使用HiveCLI连接到远程Hive Server 1,但我不相信您可以使用它连接到Hive Server2(使用直接用于Hive Server 2)。
对于此错误,您可以查看服务器端的hive.log和hiveserver2.log,以更深入地了解可能导致MapReduce错误的原因。
希望这有帮助。
干杯, 霍尔曼