[英]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.