Python连接到配置单元使用pyhs2和Kerberos身份验证

Python连接到配置单元使用pyhs2和Kerberos身份验证,python,jdbc,hive,Python,Jdbc,Hive,我正在用pyhs2连接蜂巢。但是配置单元服务器需要Kerberos身份验证。有人知道如何将JDBC字符串转换为pyhs2参数吗?比如: jdbc:hive2://biclient2.server.163.org:10000/default;principal=hive/app-20.photo.163。org@HADOOP.HZ.NETEASE.COM?mapred.job.queue.name=default我想它应该是这样的: pyhs2.connect(host='biclient2.se

我正在用pyhs2连接蜂巢。但是配置单元服务器需要Kerberos身份验证。有人知道如何将JDBC字符串转换为pyhs2参数吗?比如:
jdbc:hive2://biclient2.server.163.org:10000/default;principal=hive/app-20.photo.163。org@HADOOP.HZ.NETEASE.COM?mapred.job.queue.name=default

我想它应该是这样的:

pyhs2.connect(host='biclient2.server.163.org',
                   port=10000,
                   authMechanism="KERBEROS",
                   password="something",
                   user='your_user@HADOOP.HZ.NETEASE.COM')
我也在做同样的事情,我仍然没有成功,但至少有一个有意义的错误代码:
(服务器配置单元)/xxx@yyy.COM在Kerberos数据库中找不到)

只要运行脚本的用户具有有效的Kerberos票证,此连接字符串就可以工作:

import pyhs2

with pyhs2.connect(host='biclient2.server.163.org',
                    port=10000,
                    authMechanism="KERBEROS") as conn:

    with conn.cursor() as cur:
            print cur.getDatabases()
用户名、密码和任何其他配置参数均不可用
通过KDC。

我成功地使用您所说的,并添加一个
配置
参数,如:
conn_config={'krb_host':'app-20.photo.163.org','krb_service':'hive'}
从安全角度来看,在Kerberos身份验证中,用户名/密码应该从活动的Kerberos票证或密钥表获取。请参阅下面的@pele88答案,该答案与前一个选项一致。加1,但pyhs2不再保持加1,但pyhs2不再保持@Ruslan是的,我知道,但无法找到任何替代方案与kerberised群集一起工作-我尝试了Impyla和PyHive。有你?