[HADOOP] JAVA를 통해 HIVE2에 연결할 수 없습니다.
HADOOPJAVA를 통해 HIVE2에 연결할 수 없습니다.
Hive2를 참조하면 HIVE2 서버 (로컬이 아닌)에 연결하는 간단한 자바 프로그램을 작성하여 위의 링크에서 위의 링크를 Eclipse의 클래스 경로에 추가했지만 코드를 실행하면 다음과 같은 오류가 발생합니다.
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)
여기 또는 여기에서 언급되었지만 문제가 해결되지 않았습니다.
해결법
-
==============================
1.hive2 유형의 jdbc url을 사용합니다.
hive2 유형의 jdbc url을 사용합니다.
Hive wiki에서 설명한 것처럼 중고품 DBC는 더 이상 권장되지 않습니다.
hive2 jdbc에서이 정보를 확인하십시오. 드라이버는 예를 들어 여기에서 찾을 수 있습니다.
http://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/1.2.1
from https://stackoverflow.com/questions/34540948/unable-to-connect-to-hive2-via-java by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 작업 : 작업이 601 초 동안 상태를보고하지 못합니다. (0) | 2019.07.22 |
---|---|
[HADOOP] Hive - 열 이름 가져 오기 (0) | 2019.07.22 |
[HADOOP] 이름 노드는 fsImage를 저장하고 로그를 편집합니까? (0) | 2019.07.22 |
[HADOOP] spark가 오류를 반환합니다 libsnappyjava.so : 공유 객체에서 세그먼트를 매핑하지 못했습니다 : 작업이 허용되지 않습니다. (0) | 2019.07.22 |
[HADOOP] Spark / Yarn : 파일이 HDFS에 존재하지 않습니다. (0) | 2019.07.22 |