2015-12-31 36 views
5

enter image description hereHive2を参照すると、HIVE2サーバー(ローカルではありません)に接続するための簡単なJavaプログラムが作成され、Eclipseのクラスパス上の上記のリンクにすべてのjarファイルが追加されました。それはとエラーがスローコード:JAVA経由でHIVE2に接続できません

09:42:35,580 INFO Utils:285 - Supplied authorities: hdstg-c01-edge-03:20000 
09:42:35,583 INFO Utils:372 - Resolved authority: hdstg-c01-edge-03:20000 
09:42:35,656 INFO HiveConnection:189 - Will try to open client transport with JDBC Uri: jdbc:hive2://hdstg-c01-edge-03:20000 
FAILED: f 
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:456) 
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:178) 
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105) 
at java.sql.DriverManager.getConnection(DriverManager.java:579) 
at java.sql.DriverManager.getConnection(DriverManager.java:221) 
at testScripts.HiveJdbcClient.f(HiveJdbcClient.java:19) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 
at org.testng.internal.Invoker.invokeMethod(Invoker.java:648) 
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:834) 
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1142) 
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) 
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) 
at org.testng.TestRunner.privateRun(TestRunner.java:771) 
at org.testng.TestRunner.run(TestRunner.java:621) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) 
at org.testng.SuiteRunner.run(SuiteRunner.java:259) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1176) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1101) 
at org.testng.TestNG.run(TestNG.java:1009) 
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) 

herehereを呼び、それは問題を解決できませんでした。

+0

あなたは倹約を含むすべてのjar LIBSを追加したことがありますか?倹約のjarファイルを追加していないようです。 –

+0

@MobinRanjbar:はい、追加され、そのスクリーンショットで更新されました。 – Vinod

+0

libthriftのバージョンを0.8.0や0.7.0などの古いバージョンにダウングレードしてください。 –

答えて

4

hive2タイプのjdbc urlを使用します。

としてはHive wikiに説明し、リサイクルJDBCはもはや推奨されません:hive2のJDBCの

JDBC

This document describes the JDBC client for the original Hive Server (sometimes called Thrift server or HiveServer1). For information about the HiveServer2 JDBC client, see JDBC in the HiveServer2 Clients document. HiveServer2 use is recommended; the original HiveServer has several concurrency issues and lacks several features available in HiveServer2.

チェックアウトthis infoを。ドライバは、例えばここで見つけることができます:

http://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/1.2.1

+0

JARSを1つずつ実行してプロジェクトを再構築しました。互換性のないJARバージョンの問題が原因で、解決されました。ハイブに接続できました。 – Vinod

+0

@Jan倹約jdbc本当にお勧めしていないですか?同じページの1ページ分だけHiveServer2に「ThriftベースのHiveサーバーが含まれています」と表示されます。 (https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview)。私は倹約瓶のために狩りをするべきかどうかわからない... –

+0

「JDBCはもはや推奨されない」とはどういう意味ですか? –

関連する問題