HiveServer2 MapR java.sql.SQLException:编译语句时出错:FAILED:SemanticException无有效权限

时间:2015-08-24 19:59:02

标签: java hive talend mapr

我们的团队刚刚升级到HiveServer2(在MapR上),具有安全性。我可以通过beeline登录数据库并执行select语句:

beeline> !connect jdbc:hive2://
Enter username for djbc:hive2://: <username>
Enter password for jdbc:hive2://: **********
beeline> use test;
beeline> select * from foo;

我正在使用Talend(一个java代码生成器)尝试连接到HiverServer2,但是我收到以下错误消息:

Exception in component tHiveConnection_3
java.sql.SQLException: Error while compiling statement: FAILED: SemanticException No valid privileges
Required privileges for this query: Server=HS2->Db=test->Table=*->action=insert;Server=HS2->Db=test->Table=*->action=select;
    at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:121)
    at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:109)
    at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:233)
    at org.apache.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:451)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:195)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at talend56test.testhiveryan2_0_1.TestHiveRyan2.tHiveConnection_3Process(TestHiveRyan2.java:2493)

我发现它有点令人困惑,因为我可以使用与Talend相同的用户名/密码/数据库登录beeline,但Talend会抛出特权错误。

查看第2492行(tHiveConnection_3)的Talend生成代码,我可以看到以下java代码导致错误:

conn_tHiveConnection_3 = java.sql.DriverManager.getConnection(
                    url_tHiveConnection_3, dbUser_tHiveConnection_3,
                    dbPwd_tHiveConnection_3);

url_tHiveConnection_3是一个字符串,其值如下:"jdbc:hive2://myhost:10000/test;

dbUser_tHiveConnection_3是一个包含我的用户名的字符串。

dbPwd_tHiveConnection_3是一个包含我的密码的字符串

有关导致此错误的原因的任何想法?

0 个答案:

没有答案