java - 使用beeline或java jdbc代码时,配置单元抛出错误

标签 java hadoop jdbc hive

我正在尝试使用JDBC代码连接到我的服务器,但出现以下错误。

我检查发现SessionState类是hive-exec-0.14.0.jar的成员。我可以在 hive 类路径中看到这个 jar 。当我在apache文档中检查此类时,setUserIpAddress方法不可用。任何帮助,将不胜感激。

2016-01-13 03:15:18,443 INFO  [HiveServer2-Handler-Pool: Thread-24]: thrift.ThriftCLIService (ThriftCLIService.java:OpenSession(232)) - Client protocol version: HIVE_CLI_SERVICE_PROTOCOL_V6 
2016-01-13 03:15:18,444 ERROR [HiveServer2-Handler-Pool: Thread-24]: thrift.ProcessFunction (ProcessFunction.java:process(41)) - Internal error processing OpenSession java.lang.NoSuchMethodError:

org.apache.hadoop.hive.ql.session.SessionState.setUserIpAddress(Ljava/lang/String;)
         at org.apache.hive.service.cli.session.HiveSessionImpl.<init>(HiveSessionImpl.java:112)
         at org.apache.hive.service.cli.session.HiveSessionImplwithUGI.<init>(HiveSessionImplwithUGI.java:47)
         at org.apache.hive.service.cli.session.SessionManager.openSession(SessionManager.java:260)
         at org.apache.hive.service.cli.CLIService.openSessionWithImpersonation(CLIService.java:175)
         at org.apache.hive.service.cli.thrift.ThriftCLIService.getSessionHandle(ThriftCLIService.java:322)
         at org.apache.hive.service.cli.thrift.ThriftCLIService.OpenSession(ThriftCLIService.java:235)
         at org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1253)
         at org.apache.hive.service.cli.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1238)
         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
         at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:206)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
         at java.lang.Thread.run(Thread.java:745)

最佳答案

方法SessionState.setUserIpAddress是Hive 1.0的新功能

r0.13.1中,此方法尚不存在,

r1.0.1中。

请将您的hive-exec升级到版本> 1.0.1,以使其正常工作。

关于java - 使用beeline或java jdbc代码时,配置单元抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34764968/

相关文章:

c# - 使用 C# 反序列化 Avro 文件

postgresql - 在带有 uuid_generate_v4() 的 postgres 上使用光滑代码生成器时出错

Java,通过 SSL 连接时出错(远程主机在握手期间关闭连接)

java - 使用几何 4j 将指标发布到神经节

java - 不满足的链接错误: Android OpenCV

java - 如何仅使用它们的键来获取 HBase 行?

即使我将 numReducetasks 设置为 2,Hadoop 也只会生成一个输出文件

java - 在 java JDBC 连接错误 ORA-28000 : the account got locked, 但数据库帐户未锁定

java - 如何使用 JDBC 从数据库中检索 SDO_GEOMETRY?

java - 如何使用 mockMvc 检查响应正文中的 JSON