문제

I'm trying to connect to a Hive Server implemented through Cloudera with the jdbc-connector and the connection fails at the impersonation point :

14/05/13 10:45:10 INFO hive.metastore: Connected to metastore.
14/05/13 10:45:10 WARN conf.Configuration: org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@2f490758:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval;  Ignoring.
14/05/13 10:45:10 WARN conf.Configuration: org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@2f490758:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts;  Ignoring.
org.apache.hive.service.cli.HiveSQLException: No username provided for impersonation
    at org.apache.hive.service.cli.session.HiveSessionImplwithUGI.setSessionUGI(HiveSessionImplwithUGI.java:57)
    at org.apache.hive.service.cli.session.HiveSessionImplwithUGI.<init>(HiveSessionImplwithUGI.java:49)
    at org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:83)
    at org.apache.hive.service.cli.CLIService.openSessionWithImpersonation(CLIService.java:118)
    at org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(ThriftCLIService.java:157)
    at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:255)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:150)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:106)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    [...]
java.sql.SQLException: No username provided for impersonation

I've checked the cloudera web interface and impersonation in enabled on hive, and the proxy settings for hdfs and MapReduce are correctly set to "*". My hive-site.xml also contains

<property>
  <name>hive.server2.enable.impersonation</name>
  <value>true</value>
</property>

Does anyone know where that could come from?

도움이 되었습니까?

해결책

It was actually down to the hive server2 not being started in Cloudera and me trying to use the driver for hive server 2 Class.forName("org.apache.hive.jdbc.HiveDriver"); instead of the hive server driver Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top