Python连接到Hive使用pyhs2和Kerberos身份验证
问题描述:
我连接Hive使用pyhs2。但Hive服务器需要Kerberos身份验证。任何人都知道如何将JDBC字符串转换为pyhs2参数?像: jdbc:hive2://biclient2.server.163.org:10000/default;principal=hive/[email protected]?mapred.job.queue.name=default
Python连接到Hive使用pyhs2和Kerberos身份验证
答
我认为这将是这样的:
pyhs2.connect(host='biclient2.server.163.org',
port=10000,
authMechanism="KERBEROS",
password="something",
user='[email protected]')
我也在做同样的,我还没有成功,但至少有一个有意义的错误代码: (服务器蜂巢/ [email protected]在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'}' – leeyiw
从安全角度来看,在Kerberos身份验证中,用户名/密码应取自活动的Kerberos票据或密钥表中。请参阅下面的@ pele88答案,以前的选项。 – Tagar
加一,但pyhs2不再维护http://*.com/a/38666630/470583 – Tagar