0

使用 Python pyhive模块连接到使用Kerberos配置的配置单元数据库时出现以下错误。

kerberos_service_name should be set if and only if in KERBEROS mode

我的连接代码:

import hive from pyhive

con = hive.Connection(host="hostnamexxxxx",port=10001,
                          database="db_namexxxx",username="usernamexxxx",
                          auth="KERBEROS",
                          kerberos_service_name="hive")

完整的错误跟踪:

 File "/xx/xx/site-packages/pyhive/hive.py", line 126, in __init__
    raise ValueError("kerberos_service_name should be set if and only if in KERBEROS mode")
ValueError: kerberos_service_name should be set if and only if in KERBEROS mode

还尝试将kerberos_service_name 更改为 'attuid@principal'但没有运气。

能否请你帮忙!提前致谢

4

1 回答 1

0

只是进一步排除故障,在线提出了错误。

if (kerberos_service_name is not None) != (auth == 'KERBEROS'): raise ValueError("kerberos_service_name should be set if and only if in KERBEROS mode").

所以检查身份验证输出,当我从配置解析器获取身份验证值时,它包含单词' KERBEROS '中的引号,因此与字符串' KERBEROS '相比返回false

即'KERBEROS' == ''KERBOROS''

于 2021-02-22T11:47:07.967 回答