簡體   English   中英

如何使用 JDBC 和 ZEA52C36203D5F99C3CE2ZB4 從 Python 連接遠程 Hive 服務器?

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

  1. krb5.config 文件 - 您的管理員將能夠提供此文件
  2. keytab 文件 - 用於嘗試訪問 hive 的用戶
  3. jaas 文件 - (下面提到的示例)

代碼:


    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM