如果涉及MR,则配置单元jdbc连接出现错误

如果涉及MR,则配置单元jdbc连接出现错误,jdbc,hive,hortonworks-data-platform,Jdbc,Hive,Hortonworks Data Platform,我正在HDP2.1中开发HiveJDBC连接 对于不涉及mapreduce的查询(如“select*from TABLENAME”),代码运行良好。当使用“where”子句修改查询或指定columnnames(将在后台运行mapreduce)时,相同的代码显示错误 我已经通过在HiveCLI中执行查询来验证查询的正确性。 此外,我还为运行java jdbc代码的用户验证了表的读/写权限 错误如下 java.sql.SQLException: Error while processing

我正在HDP2.1中开发HiveJDBC连接

对于不涉及mapreduce的查询(如“select*from TABLENAME”),代码运行良好。当使用“where”子句修改查询或指定columnnames(将在后台运行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)

如果您使用beeline执行相同的查询,您是否看到与运行测试程序时相同的行为

beeline客户端还使用开源JDBC驱动程序并连接到Hive服务器,这与您在程序中所做的类似。另一方面,HiveCLI中嵌入了配置单元,默认情况下不连接到远程配置单元服务器。您可以使用HiveCLI连接到远程配置单元服务器1,但我不相信您可以使用它连接到配置单元服务器2(使用直线连接到配置单元服务器2)

对于此错误,您可以查看服务器端的hive.log和hiveserver2.log,以进一步了解可能导致MapReduce错误的原因

希望这有帮助

干杯,
Holman

今天,当我从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
Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=anonymous, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

我尝试在配置单元中使用sql execute,效果很好。然后我在
/var/log/hive/hadoop-cmf-hive-HIVESERVER2-cloud000.log.out中看到了日志,然后我找到了这个错误的原因。出现以下错误:

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
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成功!

只是澄清一下,通过HiveCLI运行相同的查询是可行的,但通过JDBC驱动程序却不行?HiveCLI查询也启动了MapReduce作业?是的,它在后面运行MapReduce,工作正常。顺便说一下,Simba还提供了到Hive的JDBC和ODBC连接。您可以试用免费试用版,并获得支持以帮助您的POC。