Невозможно подключить улей к локальному оконному компьютеру. Ошибка получения соединения: java.sql.SQLException: Не удалось открыть транспорт клиента с помощью JDBC Uri - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь установить соединение между hive-server2 и моей локальной оконной машиной с python. У меня есть строка подключения и файл хранилища ключей.Я использую модуль Python Jaydebeapi для решения этой проблемы.Различные файлы .jar, которые я использую:
1) HiveJDBC4.jar
2) hive_metastore.jar
3) hive-service-0.13.1.jar
4) libfb303-0.9.0.jar
5) libthrift-0.9.0.jar
6) log4j-1.2.14.jar
7) ql.jar
8) slf4j-api-1.5.8.jar
9) slf4j-log4j12-1.5.8.jar
10) TCLIServiceClient.jar
11) httpclient-4.3.3.jar
12) httpcore-4.3.jar
13) guava-16.0.1.jar
14) hadoop-common-2.2.0.jar
15) hive-common-0.10.0.jar

Моя строка подключения:

jdbc:hive2://example@domain.com:port/;  
ssl=true;  
sslTrustStore=FileKey.jks;  
trustStorePassword=password;  
transportMode=http;  
httpPath=gateway/default/hive  

Я пробовал другие модули, но для данной проблемы и входных данных подход Jaydebeapi, который я нашел, был более правильным здесь.Я написал код Python:

import jaydebeapi
Jars = ['C:/Cloudera_HiveJDBC/HiveJDBC4.jar',
   'C:/Cloudera_HiveJDBC/hive_metastore.jar',
   'C:/Cloudera_HiveJDBC/hive-service-0.13.1.jar',
   'C:/Cloudera_HiveJDBC/libfb303-0.9.0.jar',
   'C:/Cloudera_HiveJDBC/libthrift-0.9.0.jar',
   'C:/Cloudera_HiveJDBC/log4j-1.2.14.jar',
   'C:/Cloudera_HiveJDBC/ql.jar',
   'C:/Cloudera_HiveJDBC/slf4j-api-1.5.8.jar',
   'C:/Cloudera_HiveJDBC/slf4j-log4j12-1.5.8.jar',
   'C:/Cloudera_HiveJDBC/TCLIServiceClient.jar',
   'C:/Cloudera_HiveJDBC/httpclient-4.3.3.jar',
   'C:/Cloudera_HiveJDBC/httpcore-4.3.jar',
   'C:/Cloudera_HiveJDBC/guava-16.0.1.jar',
   'C:/Cloudera_HiveJDBC/hadoop-common-2.2.0.jar',
   'C:/Cloudera_HiveJDBC/hive-common-0.10.0.jar']
conn_hive = jaydebeapi.connect('org.apache.hive.jdbc.HiveDriver','jdbc:hive2://example@domain.com:port/',
                           {'ssl':"true",
                           'sslTrustStore':"Filekey.jks",
                           'trustStorePassword':"password",
                            'transportMode':"http",
                            'httpPath':"gateway/default/hive"
                           },
                           jars= Jars)
cursor = conn_hive.cursor()

Но я получаю сообщение об ошибке:

java.sql.SQLExceptionPyRaisable: java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://example@domain.com:port/: null

Есть ли какие-либо проблемы с кодом, в подходе или отсутствии Jar-файлов, которые я добавил.Есть ли другие альтернативы, которые я могу использовать для достижения наилучших результатов.

...