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

Python connect to Hive use pyhs2 and Kerberos authentication

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

我想会是这样的:

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)

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