我正在尝试使用python在hive-server2和本地窗口机器之间建立连接。我有连接字符串和密钥库文件。我正在使用Jaydebeapi python模块来解决此问题。我正在使用的各种.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)番石榴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文件是否缺少。 我还有其他选择可以用来获得最佳效果。