簡體   English   中英

通過JDBC連接到Hive時出現Java NoSuchMethodError

[英]Java NoSuchMethodError when connecting via JDBC to Hive

嘗試從Eclipse中的簡單Java程序連接到Hive時出現以下錯誤。 看起來好像連接,然后引發此錯誤。 我可以通過beeline在本地連接到Hive Thrift服務器,而不會出現問題。

兩個libthrift .jar文件均為0.9.2。 在客戶端和服務器上相同。 以下.jar文件的服務器和客戶端版本相同:

hive-jdbc*.jar              1.2.0
hive-service*.jar           1.2.0
libfb303-0.9.0.jar          0.9.2
libthrift-0.9.0.jar         0.9.2
log4j-1.2.16.jar            1.2.16
slf4j-api-1.6.1.jar         1.7.5
slf4j-log4j12-1.6.1.jar     1.7.5
commons-logging-1.0.4.jar   1.1.3


Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.protocol.TProtocol.getScheme()Ljava/lang/Class;
       at org.apache.hive.service.cli.thrift.TCLIService$OpenSession_args.write(TCLIService.java:1854)
       at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:63)
       at org.apache.hive.service.cli.thrift.TCLIService$Client.send_OpenSession(TCLIService.java:150)
       at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:142)
       at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:578)
       at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:192)
       at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
       at java.sql.DriverManager.getConnection(Unknown Source)
       at java.sql.DriverManager.getConnection(Unknown Source)

我使用的libthrift版本被Apache列為具有getScheme()方法。

任何幫助將不勝感激!

確保已在類路徑中包括了所需的jar文件。 正如您所說的,它在您的本地計算機上工作時,我想您確實做到了。 如果它在實際服務器上不起作用,請確保已部署所需的jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM