Python使用pyhs2和Kerberos身份验证连接到Hive

时间:2015-04-23 05:10:31

标签: python jdbc hive

我正在连接Hive使用pyhs2。但是Hive服务器需要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

2 个答案:

答案 0 :(得分:4)

我认为会是这样的:

pyhs2.connect(host='biclient2.server.163.org',
                   port=10000,
                   authMechanism="KERBEROS",
                   password="something",
                   user='your_user@HADOOP.HZ.NETEASE.COM')

我也是这样做的,我仍然没有成功,但至少有一个有意义的错误代码: (在Kerberos数据库中找不到服务器hive/xxx@yyy.COM)

答案 1 :(得分:3)

只要运行脚本的用户具有有效的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。