[英]How to connect a remote Hive server from Python using JDBC and SSL?
我有以下 Hive 客戶端詳細信息,需要 SSL 連接才能訪問數據庫
client_url="jdbc:hive2://myhiveserver.india.mycompany.com:9029/default;ssl=true;transportMode=http;httpPath=gateway/default/hive;trustStorePassword=selfsign"
certificate=mycertficate.pem
那么在 ZA7F5F352316B927841736 中使用 JDBC 和 SSL 訪問 Hive 的正確方法是什么? 在我的情況下,我沒有看到在附加 SSL 證書的情況下訪問 Hive 的正確示例?
使用 jaydebeapi 和 jpype 對我有用。 以下文件需要添加到 jvm
代碼:
jaas = './config/jass.conf'
krb5 = './config/krb5.conf'
keytab = './config/<userid>.keytab'
jar = './jars/HiveJDBC41.jar'
principal = "<host>@<domain>"
jdbc_url = "jdbc:hive2://<host>:<port>/default;KrbRealm=<domain>;AuthMech=1;KrbHostFQDN=<host>;KrbServiceName=hive;principal=<host>@<domain>;ssl=1;"
jvm_path = jpype.getDefaultJVMPath()
jpype.startJVM(jvm_path,
'-Djava.class.path='+ jar,
'-Djavax.security.auth.useSubjectCredsOnly=true',
'-Djava.security.krb5.conf='+krb5,
'-Djava.security.auth.login.config='+jaas,
'-Djava.security.auth.login.config.keyTabFile='+keytab,
'-Djava.security.auth.login.config.principal='+ principal,
'-Dhadoop.security.authentication="kerberos"',
)
conn = jaydebeapi.connect("com.cloudera.hive.jdbc41.HS2Driver", jdbc_url)
jaas 文件:
Client {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
useKeyTab=true
principal="<host>@<domain>"
debug=true
keyTab="./config/<userid>.keytab";
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.