Я пытаюсь установить соединение между 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-файлов, которые я добавил.Есть ли другие альтернативы, которые я могу использовать для достижения наилучших результатов.