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。
我正在使用 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。